pdb를 실행하고 코드를 단계별로 실행하고 어떤 시점에서 일부 이름이 가리키는 값을 변경합니다. 그래서 저는 'stationLat'이라는 이름으로 가리키는 값을 변경하고 싶을 것입니다. 그러나 나는 할 수없는 것처럼 보인다. 여기에 그 예가 있습니다 :pdb로 파이썬을 디버깅하는 동안 어떻게 값을 변경합니까?
>>> import extractPercentiles
>>> import pdb
>>> pdb.run("extractPercentiles.extractOneStation()")
> <string>(1)<module>()->None
(Pdb) s
--Call--
> /scratch/extractPercentiles.py(96)extractOneStation()
-> def extractOneStation() :
(Pdb) tbreak 132
Breakpoint 3 at /scratch/extractPercentiles.py:132
(Pdb) c
Deleted breakpoint 3
> /scratch/extractPercentiles.py(132)extractOneStation()
-> stationLon = float(stationLoc[3])
그래서 지금 나는 stationlat의 가치를 바꾸고 싶습니다. PDB는 나에게 새로운 값으로 stationLat을 설정할 수 있도록 나타납니다,하지만 난 값을 검사 할 때, 변경은 :
(Pdb) stationLat
-34.171100000000003
(Pdb) stationLat = -40
(Pdb) stationLat
-34.171100000000003
(Pdb) !stationLat = -40
(Pdb) stationLat
-34.171100000000003
(Pdb)
당신은 내가 사용하려고 볼 수 있습니다! 성공없이. 디버거 파이썬 문 것으로 간주됩니다 인식하지 않고 디버깅중인 프로그램의 컨텍스트에서 실행되는
명령 있음 :
PDB의 매뉴얼은 내가 변수를 변경 할 수 있어야했다. 파이썬 문장의 앞에는 느낌표 (!)를 붙일 수 있습니다. 디버깅중인 프로그램을 검사하는 강력한 방법입니다. 이 함수
이 범위의 문제인가를 변수을 변경하거나 호출도 가능하다? 내가 pdb를 시작한 방법과 관련이 있습니까? 임베디드 "pdb.set_trace"관용구를 시도하고 같은 결과를 얻었습니다.
읽어 주셔서 감사합니다.
아 :
이보십시오! 알았어 고마워. 이름을 다듬거나 특별한 네임 스페이스를 사용해야한다고 생각했습니다. 나는 프레임 스택도 위아래로 가려고했다. –
아,이 프로젝트에 대해 파이썬 2.5.2에서 다시 작업해야한다는 것을 기록 할 것입니다. 여전히 버그가 있습니다. –
또한 할당 할 수없는 특정 변수가 있습니다. "a"또는 "b"와 같은 것 – dtc