pdb python
pdb 로 python 디 버 깅 을 진행 합 니 다. 사용 방법 은 기본적으로 gdb 와 차이 가 많 지 않 습 니 다. 먼저 간단 한 예 를 보 겠 습 니 다: epdb1. py.
# epdb1.py -- experiment with the Python debugger, pdb
a = "aaa"
b = "bbb"
c = "ccc"
final = a + b + c
print final
:
1: , 。
import pdb
2: pdb.set_trace()
파일 변환:
# epdb1.py -- experiment with the Python debugger, pdb
import pdb
a = "aaa"
pdb.set_trace()
b = "bbb"
c = "ccc"
final = a + b + c
print final
이 프로그램 을 실행 할 수 있 습 니 다. 정지점 이 나 올 때 까지 멈 출 수 있 습 니 다. gdb 와 유사 합 니 다. 명령 을 실행 할 수 있 습 니 다. 직접 차 로 돌아 가 는 것 은 이전 명령 을 반복 하 는 것 입 니 다!p (print) 변수 값 n (next) 다음 s (step) 단 계 를 보고 함수 c (continue) 에 들 어가 서 계속 l (list) 소스 코드 를 볼 수 있 습 니 다.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
pdb 디 버 깅 으로 여러 가지 방법 을 선택 할 수 있 습 니 다.
1. 명령 행 에서 대상 프로그램 을 시작 하고 - m 인 자 를 추가 하여 my script. py 를 호출 하면 정지점 은 프로그램의 첫 줄 을 실행 하기 전에 python - m pdb my script. py 입 니 다.
2. Python 인 터 랙 션 환경 에서 디 버 깅 사용 > > import pdb > > import my module > > pdb. run ('my module. test ()')
3. 자주 사용 하 는 것 은 프로그램 중간 에 프로그램 을 삽입 하 는 것 입 니 다. 일반 IDE 에 정지점 을 두 고 debug 를 시작 하 는 것 에 비해 이런 방식 은 hardcode 입 니 다.
view plain copy to clipboard print ?
"color: rgb(255, 119, 0); font-weight: bold;" > if
:
"color: rgb(220, 20, 60);" >pdb
"color: rgb(220, 20, 60);" >pdb
"color: black;" >(
"color: rgb(255, 119, 0); font-weight: bold;" > print
c"color: black;" >)
if
__name__ == "__main__"
:
a = 1
import
pdb
pdb
.set_trace
(
)
b = 2
c = a + b
print
(
c)
그리고 스 크 립 트 를 정상적으로 실행 합 니 다. pdb. settrace () 가 정 해 지면 디 버 깅 프롬프트 (Pdb) 를 볼 수 있 습 니 다.
상용 디 버 깅 명령
(Pdb) l 497 pdb.set_trace() 498 base_data = {} 499 new_data = {} 500 try: 501 execfile(base_file_name,{},base_data) 502 -> execfile(new_file_name,{},new_data) 503 except: 504 logger.writeLog(“error! load result log error!”) 505 print “load cmp logs error!” 506 raise Exception, “load cmp logs error!” 507
> 정지점 설정 (Pdb)b 10 \ # 정지점 은 이 py 의 10 번 째 줄 에 설정 합 니 다. 또는 (Pdb) b ots. py: 20 \ # 정지점 을 ots. py 20 줄 로 설정 합 니 다. 정지점 삭제 (Pdb) b \ # 정지점 번호 보기 (Pdb) cl 2 \ # 두 번 째 정지점 삭제 >운행 하 다. (Pdb) n \ # 단일 실행 (Pdb) s \ # 자세하게 실행 하면 내 려 오 는 방법 (Pdb) c \ # 다음 정지점 으로 건 너 뛰 기 > 보기 (Pdb) p param \ # 현재 변수 값 보기 (Pdb) l \ # 실행 코드 보기 (Pdb) a \ # 모든 스 택 내 변 수 를 봅 니 다.
(Pdb) b 504 Breakpoint 4 at /home/jchen/regression/regressionLogCMP.py:504
(Pdb) condition 4 a==3 (Pdb) b Num Type Disp Enb Where 4 breakpoint keep yes at /home/jchen/regression/regressionLogCMP.py:504 stop only if a==3
(Pdb) cl Clear all breaks? y
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.