전체 소스 코드가 없지만 심볼이있는 객체 파일이 있습니다. 읽기 라인이 있습니다 :GDB의 어셈블리 어셈블리 변수
=> 0x080489cd <+169>: call 0x8049275 <read_line>
0x080489d2 <+174>: mov %eax,(%esp)
0x080489d5 <+177>: call 0x8048d59 <phase_1>
in the function:
8048d59: 55 push %ebp
8048d5a: 89 e5 mov %esp,%ebp
8048d5c: 83 ec 08 sub $0x8,%esp
나는 첫 줄에 b를 넣었고 확실하게 함수 이름에 하나를 추가했습니다. 입력 한 후 "1"p *(char**)$esp
을 시도하고 내가 얻을 :
0x80489da "\350\355\006"
. 나는 "1"을 볼 것으로 예상되었다. 나는 또한 시도 : 다음 당신이보고있는 것은 수익입니다 :
gdb x $esp
0xbffff0cc: 0x080489da
gdb x *0xbffff0cc
0x80489da <main+182>: 0x0006ede8
당신은 기호 오브젝트 파일을 말한다. 'gcc -g'로 컴파일되었는지, 즉 디버깅 정보로 알 수 있습니까? 이 경우 소스 코드를 100 % 빠르게 복구 할 수 있습니다. – QuasarDonkey