gdb 디버거에 가장 까다롭고 유용한 명령어
gdb나 dbx와 같은 디버거를 실행하는 동안 가장 까다롭고 유용한 명령어를 게시할 수 있습니까?
- backtrace full: 로컬 변수를 사용한 완전한 역추적
- 위, 아래, 프레임:프레임 사이를 이동하다
- watch: 특정 조건이 충족되면 프로세스를 일시 중지합니다.
- set print pretty on : 예쁘게 포맷된 C 소스 코드를 출력합니다.
- set logging on: 지원을 위해 다른 사용자에게 표시할 디버깅세션 로그
- 프린트 어레이 설정: 예쁜 어레이 인쇄
- finish: 기능이 종료될 때까지 계속합니다.
- 활성화 및 비활성화: 중단점 활성화/비활성화
- tbreak: 한 번 브레이크한 후 브레이크 포인트를 제거합니다.
- 여기서: 현재 실행 중인 회선 번호
- 정보 로컬:모든 로컬 변수 표시
- args:모든 함수 인수 표시
- 목록: 뷰 소스
- rbreak: 정규 표현과 일치하는 함수의 중단
텍스트 사용자 인터페이스를 사용하여 gdb 시작
gdb -tui
gdb 7.0부터는 리버서블 디버깅이 있습니다.따라서 새로 선호하는 명령어는 다음과 같습니다.
* reverse-continue ('rc') -- Continue program being debugged but run it in reverse
* reverse-finish -- Execute backward until just before the selected stack frame is called
* reverse-next ('rn') -- Step program backward, proceeding through subroutine calls.
* reverse-nexti ('rni') -- Step backward one instruction, but proceed through called subroutines.
* reverse-step ('rs') -- Step program backward until it reaches the beginning of a previous source line
* reverse-stepi -- Step backward exactly one instruction
* set exec-direction (forward/reverse) -- Set direction of execution.
thread apply all bt
★★★★★★★★★★★★★★★★★」thread apply all print $pc
: 가 무엇을 모든 스레드가 무엇을 하고 있는지 빠르게 알아내기 위해.
"-tui" 매개 변수를 사용하여 GDB를 시작하는 대신 "wh"를 입력하여 잠시 후 텍스트 모드로 전환할 수도 있습니다.
- .gdbinit(gdb에서 매크로를 쓰고 호출할 수 있는 부팅 파일)을 사용합니다.gdbinit은 gdb가 로드될 때마다 선택되도록 홈 디렉토리에 배치합니다.
info threads: 모든 활성 스레드 및 전환처의 f(#) -> # 스레드 번호를 나열합니다.
16진수에서 10진수 또는 2진수로 변환하기 위해 gdb를 사용하는 경우가 있습니다.계산기를 여는 대신 매우 편리합니다.
- p/d 0x10 -> 는 0x10 에 상당하는 10 진수를 나타냅니다.
- p/t 0x10 -> 0x10에 상당하는 바이너리
- p/x 256 -> 256에 상당하는 16진수
이것은 도움이 될 수 있지만, 개선될 수 있다고 확신합니다.
define mallocinfo
set $__f = fopen("/dev/tty", "w")
call malloc_info(0, $__f)
call fclose($__f)
「 」의 -command=<file with gdb commands>
gdb 중 입니다.와다같 same -x <command file>
이 명령어 파일에는 중단점, 옵션 등의 gdb 명령어를 포함할 수 있습니다.특정 실행 파일을 gdb를 사용하여 연속적으로 디버깅을 실행해야 할 경우 유용합니다.
스크립트 gdb는 좋은 트릭입니다.단, 스케줄러 잠금을 on/off로 설정하여 사용자가 다른 스레드를 실행하는 것을 방지합니다.
코드 실행 행이 프로그램 내에서 강조 표시된 화면이 포함된 하위 프로세스를 표시하려면 옵션 -tui로 gdb를 시작하는 대신 C-x o 및 C-x a를 사용하여 이 기능에 참여하거나 종료합니다.이 기능은 기능을 사용하는 경우나 일시적으로 사용하지 않는 기능을 사용하여 위쪽 화살표를 사용하여 이전 명령을 가져올 수 있는 경우에 유용합니다.
예를 들어 stl-views.gdb에 정의된 매크로입니다.
STL을 디버깅하려면 .gdbinit에 콘텐츠를 추가합니다.다음 절차를 따릅니다.
http://www.yolinux.com/TUTORIALS/GDB-Commands.html#STLDEREF
언급URL : https://stackoverflow.com/questions/1471226/most-tricky-useful-commands-for-gdb-debugger
'source' 카테고리의 다른 글
vue.filename: 와의 차이점vue.filename: 와의 차이점?? (0) | 2022.08.19 |
---|---|
NuxtServerInit을 올바르게 호출하려면 어떻게 해야 합니까? (0) | 2022.08.19 |
Nuxt/Vue-meta: info.meta.filter는 함수가 아닙니다. (0) | 2022.08.19 |
라벨이 VueJ로 되어 있는 CheckBox의 선택을 해제합니다.s (0) | 2022.08.19 |
Vue.js에서 폼 기본 동작 방지 (0) | 2022.08.19 |