반응형
명령 플래그를 사용하여 향후 공유 라이브러리에서 중단점을 설정하는 방법
gdb 세션을 자동화하려고 합니다.--command
flag. 공유 라이브러리(DLL과 동등한 Unix)의 함수에 중단점을 설정하려고 합니다.내 cmds.gdb는 다음과 같습니다.
set args /home/shlomi/conf/bugs/kde/font-break.txt
b IA__FcFontMatch
r
단, 다음과 같은 정보를 얻을 수 있습니다.
shlomi:~/progs/syslog-syslog/syslog-b --command=cmds.gdb... GNU gdb 6.8-2mdv2009.0 (Mandriva Linux 릴리즈 2009.0)Copyright (C) 2008 Free Software Foundation, Inc.라이선스 GPLv3+: GNU GPL 버전3 이후이것은 무료 소프트웨어입니다.변경 및 재배포는 자유입니다. 법에 의해 허용된 범위 내에서 보증은 없습니다."show copying"을 입력합니다.자세한 내용은 "보증서 제시"를 참조하십시오. 이 GDB는 "i586-mandriva-linux-gnu"로 구성되었습니다. (디버깅 기호를 찾을 수 없습니다.)기능 "IA__FcFontMatch"가 정의되지 않았습니다. 향후 공유 라이브러리 로드 시 중단점을 보류하시겠습니까?(y 또는 [n]) [응답한N, 단말기가 아닌 입력]
결국 브레이크포인트를 설정하지 않는군요.향후 보류 중인 공유 라이브러리의 로드에 대해 중단점을 설정하기 위해 "y"라고 대답하는 것을 디폴트로 하려면 어떻게 해야 합니까?
뭔가 할 수 있었던 것은 기억하지만, 무엇이 생각나지 않는다.
IRC에 대해 누군가가 나에게 준 답변을 하고 싶다.
(gdb) apropos 보류 중actions - 트레이스 포인트에서 수행할 액션을 지정합니다.중단점 설정 - 중단점별 설정중단점 보류 설정 - 보류 중인 중단점에 대한 디버거 동작을 설정합니다.show breakpoint - 중단점별 설정show breakpoint pending - 보류 중인 중단점에 대한 디버거 동작을 표시합니다.
따라서 보류 중인 브레이크 포인트를 설정하면 문제가 해결됩니다.이 브레이크 포인트는 에서 사용됩니다.cmds.gdb
예를 들어,
set breakpoint pending on
break <source file name>:<line number>
OT: 단말기에서 Caja를 한 줄로 디버깅하면 다음과 같이 됩니다.
gdb -ex "set breakpoint pending on" -ex "break gdk_x_error" -ex run --args caja --sync
기호도 없이.
objdump -t /lib/libacl.so
SYMBOL TABLE:
no symbols
objdump -T /lib/libacl.so
...
00002bd0 g DF .text 000000d0 ACL_1.0 acl_delete_entry
...
(gdb) break 0x0002bd0
(gdb) x/20i acl_delete_entry
0x2bd0 <acl_delete_entry>: stwu r1,-32(r1)
0x2bd4 <acl_delete_entry+4>: mflr r0
0x2bd8 <acl_delete_entry+8>: stw r29,20(r1)
0x2bdc <acl_delete_entry+12>: stw r30,24(r1)
0x2be0 <acl_delete_entry+16>: mr r29,r4
0x2be4 <acl_delete_entry+20>: li r4,28972
언급URL : https://stackoverflow.com/questions/100444/how-to-set-breakpoints-on-future-shared-libraries-with-a-command-flag
반응형
'programing' 카테고리의 다른 글
Mockito는 모든 클래스 인수와 일치합니다. (0) | 2022.07.28 |
---|---|
Vue-router가 페이지를 새로고침하면 상태가 상실됩니다.이 문제를 회피하려면 어떻게 해야 합니까? (0) | 2022.07.28 |
좌측 피연산자 값이 음수인 경우 좌측 시프트 작업이 정의되지 않은 동작을 호출하는 이유는 무엇입니까? (0) | 2022.07.28 |
Vue + Vuex: 스토어 변경이 없는 경우 스토어별로 입력값이 설정되지 않음 (0) | 2022.07.28 |
vue에서 inheritAttrs: false 및 $attrs는 무엇에 사용됩니까? (0) | 2022.07.28 |