GDB의 모든 스레드에 대한 역 추적을 얻으려면 어떻게해야합니까?


151

GDB에 WinDbg의 "! process 0 7"명령과 동등한 명령이 있습니까?

GDB에서 백 트레이스와 함께 덤프 파일의 모든 스레드를 추출하고 싶습니다. "정보 스레드"는 스택 추적을 출력하지 않습니다. 그렇다면 명령이 있습니까?


13
LLDB의 해당 명령 bt all — 누군가 누군가 Google을 통해이를 발견 한 경우 (GDB == LLDB라고 생각하는 경우)입니다.
kennytm

python을 사용하면 다음과 같이 작동합니다. gdb.selected_inferior (). threads ()의 스레드에 대해 "(gdb) python : thread.switch (); print (thread.num); gdb.execute ( 'where')"
Talespin_Kit

답변:


244

일반적으로 역 추적은 현재 스레드의 스택을 가져 오는 데 사용되지만 모든 스레드의 스택 추적을 가져와야하는 경우 다음 명령을 사용하십시오.

thread apply all bt

12
출력을 파일로 저장하려면 :gdb <binary> <coredump> -ex "thread apply all bt" -ex "quit" > output.log
Doomsday

1
다음과 같이 단축 할 수 있습니다.t a a bt
qbolec

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.