В настоящее время попытки отладить с KDbg/GdB исходного кода Башни Ханоя из http://www.kernelthread.com/projects/hanoi//html/asm.html (большого ресурса)Отладочной информации не входит -g
Так как я хотел, чтобы просмотреть, как стек используется в рамках этой проблемы, я собрал его с NASM и использовал GCC для его соединения. Однако я заметил, что в KDbg текущая точка выполнения не обновлялась (т. Е. Я не мог определить, где я находился в файле). Поскольку KDbg полагается на gdb, я запустил код внутри gdb, чтобы узнать, были ли у меня подобные проблемы.
Если установить контрольную точку на линии № 30 в программе (которая представляет собой строку в основной функции), я получаю следующее:
(gdb) break 30
Breakpoint 2 at 0x804840b: file hanoi.asm, line 30.
(gdb) next
Single stepping until exit from function main,
which has no line number information.
Я в настоящее время компиляции сборки со следующими мало сценарий я написал (я, вероятно, следует перейти на косметическим файл, но это не работает до сих пор)
[email protected]:~/.scripts$ cat asmgcc
# /usr/bin/sh
nasm -f elf -g -F stabs $1.asm -l $1.lst
gcc -g $1.o -o $1
Я просто мигрировали из CentOS в Ubuntu, так что я не уверен, если это ОС проблема среды, с которой я не знаком, или другая проблема.
Как всегда, заблаговременно за помощь.
Вам необходимо передать -g в gcc –
@Paul R - К сожалению, я уже пытался сделать это изменение (gcc -g $ 1.o -o $ 1). Не имеет значения. – BSchlinker