2016-09-30 2 views
0

목표는 str_main의 주소 공간을 알아내는 것이지만 gdb는 내 중단 점을 건너 뜁니다.GDB 중단 점이 중지되지 않습니다.

어떻게 주소 위치를 찾을 수 있습니까?

나는이 간단한 C 프로그램, stack.c :

.... 
19 int main(int argc, char **argv[]) 
20 { 
21 char str_main[517]; 
22 FILE *badfile; 
23 
24 badfile = fopen("badfile","r"); 
.... 

나는 그러나 라인 21에서 중단 점, 내가 디버거를 실행할 때, 나는 다음과 같은 메시지가 얻을 설정 gdb를 입력 할 때 :

Breakpoint 1, main(argc=1, argv=0xbffff3d4) at stack.c:24 
24   badfile = fopen("badfile","r"); 
+2

라인 22는 실제로 컴파일 된 바이너리의 실행 가능 라인이 아닙니다. 그러나 문제는 무엇입니까? 24 번째 줄에서 멈추는 것은 당신이하고 싶은 일에 완벽하게 맞습니다. 디버거에서 22 행에있는 24 행에서 볼 수없는 부분은 무엇이라고 생각하십니까? 즉, 문제가없는 것입니다. – kaylum

답변

3

기본값없이 GDB가 중지되지 않습니다.

24 세 이후에도 주소를 인쇄 할 수 있습니다.

p /s str_main 
관련 문제