2012-09-15 4 views
3

우분투에서 작성한 작은 .asm 파일을 디버깅하려고합니다. 그러나 내 기호 테이블이로드되지 않고 도움이 필요한 문제가 발생합니다.gdb + nasm 디버그 정보가 생성되지 않습니다.

다음과 같이 프로그램을 컴파일하고 있습니다. 내가

gdb bs 

내가 더 디버깅 심볼을 말한다 내가

b main 

에 의해 브레이크 포인트를 설정하려고하면 그것이라는 메시지가 실행할 때 실행 학사를 생산

nasm -f elf -g -F dwarf bs.asm 
gcc -m32 -g bs.o -o bs 

함수가 파일 내에 있어도 정의되지 않은 함수이며 ./bs를 사용하여 실행할 수 있습니다.

나는 cou를 읽었습니다. 내가 조립할 때 -F 드워프를 추가 할 것을 제안했지만 누군가가 통찰력을 가지고 있다면 도움을받지 못했다.

+0

나는 적절한 대답으로 답변을 이동하기 때문에 문제는 더 이상 개방 볼 것 . –

+1

나는 링커 명령에서'-s' 플래그를 제거함으로써 비슷한 문제를 해결했습니다. – Kolyunya

답변

3

cpowel2 자신의 문제를 해결 :

이 해결 : 같은 문제가 발생 된 경우 다른 사람이 (그물에 게시물의 톤이있는 것 같다) 그냥 내가 의해 문제를 해결할 수 있었다 내 파일의 섹션 .txt 부분을 .text 섹션으로 변경하고 gdb가 바로 그것을 인식했습니다.

+0

오늘 하루 동안이 문제를 저주하는 사람으로서, 나는 비슷한 문제가 있었고, '세그먼트. 텍스트 :'가 있다면 작동하지 않을 것입니다. 세그먼트 라인에 콜론 다음에 !!! – mgrandi

0

섹션 .text

; nasm - gdb가 텍스트 섹션을 가져 오려면 텍스트 섹션이 소문자 여야합니다. 다음 명령을 사용하여 파일 조립

5

: - 다음

nasm -f elf -F dwarf -g file.asm
ld -m elf_i386 -o file file.o

및 GDB를 사용을

+0

이것은 정말 도움이됩니다! 또한 매개 변수의 순서가 중요해 보입니다. – 1a1a11a

관련 문제