2012-03-31 2 views
0

우분투 10.4 32 비트 시스템에서 gcc 4.4.3을 사용하고 있습니다. 'gdb'를 사용하여 코드를 디버깅합니다. 며칠 전부터 코드를 gdb로 디버깅 할 때마다 (printf, fgets 등) 코드에서 사용되는 c 라이브러리 함수를 단계적으로 디버깅 할 때가 있습니다. 이 기능은 한 기능에서 다른 기능으로 긴 호출 목록을 보여줍니다. 연결된 스크린 샷을 볼 수 있습니다. 이전에 gdb는 내 코드를 그냥 밟고있었습니다. 어쩌면 나는 초심자이다 !! 그러나 gdb가 나에게 현재의 상황에 관심이없는 수많은 라인을 보여줄 때 때때로 때로는 짜증이납니다.gcc with gcc 4.4.3

누군가가 나를이 기능을 끄고 켜는 방법과 그 자체로 켜는 원인이 될 수 있다면 (나는 아무것도 기억하지 않습니다). 많은 감사.

+2

함수 호출로 들어가는'step' 명령이나 함수 호출을 건너 뛰는'next' 명령을 사용 했습니까? 함수에서 빠져 나오려면'finish' 명령을 사용할 수 있습니다. –

+0

중단 점에 도달 한 후 'step'명령을 사용했습니다. 이전에는 그렇게 했었지만, lib 함수에는 들어 가지 않았습니다. – abhi

답변

4

enter image description here는 그 이전도 할하는 데 사용하지만, 그것은 당신 (또는 사람) libc6-dbg 패키지를 설치 한

lib 디렉토리의 모든 기능에 가본 적이. 그 전에는 디버그 정보가 없기 때문에 GDB는 libc 함수로 이동할 수 없었습니다. 이제 그들은 할 수 있습니다.

next을 원할 때 step을 입력하거나 libc6-dbg을 제거하는 습관을 벗어나십시오.

+0

@ Employed Russian ..이 문제의 원인 덕분에. 나는 valgrind를 언젠가 다시 설치했을 것입니다 ... – abhi

+1

예 :'valgrind'는 실제로 우분투에서'libc6-dbg'을 요구합니다 - Valgrind는'ld-linux.so '의 내부에 대해 알아야합니다. 2'이고, 그 정보는'libc6-dbg'에서만 얻을 수 있습니다. –