2017-03-04 1 views
0

내 코드의 여러 위치 (예 : 로깅 등)에 내 데코레이터를 사용하고 있습니다. 디버거가 데코레이터 몸체를 건너 뛰고 장식 된 함수에 직접 들어가도록 지시하는 방법이 있습니까?Decorator에 입력하지 않기 위해 PyCharm 디버거에 알리기

+0

은 장식에 브레이크 포인트를 넣어, 또는 내가 분명히 그것을 설명하지 않았다고 생각 – mbatchkarov

+0

커서 실행을 사용하지 마십시오. 데코 레이팅 된 함수'B()'를 호출하는 함수'A()'에서 디버깅한다고 가정 해 보겠습니다. 'B()'를 호출하는 줄에서 'function into'할 때 나는'B()'에 들어 가지 않지만 데코레이터에 들어간다. (나는 확실히 관심이 없다. 케이스). 나는 어떻게해서든지이 단계를 건너 뛸 수 있고 직접'B()'로 들어가면 나는 골동품이었다. –

+0

Step-Into 메서드를 사용하여 실제로 그렇게 할 수 있다고 생각하지 않습니다. 파이썬에 관한 한, 당신의 기능이 장식되어 있는지 전혀 모른다. '@ decorator' 문법은'my_func = decorator (my_func)'와 똑같은 것이므로, 디버거는 실제로'decorator()'의 코드에 들어갈 것입니다. 왜냐하면 그것이 호출되고 있기 때문입니다. * 할 수있는 일은 데코 레이팅 된 함수 안에 중단 점을 배치하는 것입니다. 또는 데코레이터에 들어가서 데코레이터 내부에 있으면 데코 레이팅 된 함수 ('B()')로 들어간다. – YellowShark

답변

1

설정에서 디버거가 들어갈 수없는 Python 스크립트를 지정할 수 있습니다.

환경 설정 -> 빌드, 실행 배포 -> 디버거 -> 스테핑 -> 파이썬 (맨 아래에 있어야 함).

"스크립트에 들어 가지 않기"상자를 체크하고 원하는 스크립트를 지정하십시오.

Here's a picture of my example for IntelliJ on macOS

+0

이것은 나를 위해 작동하지 않는 것이 두렵다. 나는 '스크립트'란 말은 안되는 파일의 이름을 의미한다고 가정합니다. 그러나 어쨌든, 내 디버거에서 'Step into'를 누르면,이 파일을 건너 뛸 파일로 나열했지만 데코레이터 정의 이벤트가 포함 된 파일로 이동합니다. –

+0

정확히 내가 직면 한 문제입니다. 파일 이름의 패턴을 변경하려고합니다. 원래 파일 이름은 debug_utils.py이고 내가 선택한 패턴은 \ * debug_utils \ * (이미지 체크 아웃)입니다. –

관련 문제