2009-09-30 2 views
0

gdb를 사용하여 디버깅 세션을 수행하면 나와 관련 정보가 인쇄됩니다. 어떻게 그만합니까. 여기에 내가 0x100000d8 in ??()라고 선을 제거 할명령어 간 스테핑시 gdb의 기본 출력 억제하기

Breakpoint 1, 0x100000d4 in ??() 
(gdb) si 
0x100000d8 in ??() 
(gdb) si 
0x100000dc in ??() 
(gdb) 

예를 들면 다음과 같습니다이다. 이 출력을 억제하는 것에 대해서는 문서에서 아무것도 찾을 수 없습니다. 어떤 아이디어?

감사 팀은

답변

1

당신은 0x100000d8set print address off로 인쇄를 억제 할 수 있습니다. source (static void print_frame (...)으로 검색)을 보면 나머지 부분을 억제 할 수 있다고 생각하지 않습니다.

1

비트 비밀 코드 해결 방법은 "로깅 리디렉션"을 설정하고 명령을 단계별 처리하고 마지막으로 로깅을 해제하는 기능을 정의하는 것입니다. 예 :

define stepix 
    set logging redirect on 
    set logging file /tmp/whatever 
    set logging on 
    si 
    set logging off 
end 

그러나 그 해결책은 0x100000d8 in ??()뿐만 아니라 모든 출력을 억제합니다. 귀하의 필요/취향에 맞지 않을 수도 있습니다. 나는 그 출력을 억압하는 것이 가능하다고 생각하지 않는다.

+2

물론'set logging file/dev/null'을 디스크에 보내지 않아도됩니다. –

0

지금은 2016이며, 명령 출력을 선택적으로 비활성화하려는 사람들에게는보기 흉한 해결책이 있습니다. 나는 당신의 gdb이 얼마나 최근인지 잘 모르겠습니다. 대신

(gdb) stepi 

는 당신은 더 좋은 방법이 있다면 이러한 기본 기능 같은 느낌이

(gdb) python gdb.execute("stepi", to_string=True) 

python에 의존하지 않는 특정 일에, 공유하시기 바랍니다하려고합니다. 루프에서 stepi을 실행할 때 (가능성이있는) 성능 저하를 피하고 싶습니다.