我刚刚开始使用 KDbg,很难找到我的问题的答案。我在 KDbg 中打开一个文件(我打开了一个用汇编编写的可执行文件),有一个弹出窗口说

GDB:从/home/myputer/Desktop/ASMdirectory/chapter5/eatsyscall/eatsyscall...读取符号。

我如何获得在调试器中运行程序并添加断点等的选项。它不允许我单击按钮运行程序或添加任何断点,这里有问题吗?我错过了一步吗?提前致谢。顺便说一句,我的汇编程序使用 Linux(Ubuntu)和 NASM。

最佳答案

您运行的软件版本是多少?

例如我正在运行
Ubuntu 12.04,
kdbg 2.5.0(KDE 开发平台 4.8.5),
gdb 7.4-2012.04,
纳斯姆 2.09.10

您正在使用 Duntemann 的书,是吗?
我假设您将 SECTION .txt 更改为 SECTION .text 因为
当 GDB 尝试读取符号时,它报告“完成”而不是“在符号文件中找不到任何代码段”

我建议直接使用 gdb 而不是 kdbg。我不知道有什么方法可以让 kdbg 显示反汇编代码或列表(或如何直接发送任何 gdb 命令)。我认为可以做的最好的是:

  • 运行 kdbg
  • 打开可执行文件
  • 切换到 Breakpoints 选项卡
  • 在编辑框中输入“_start”(我认为这是您拥有的唯一可见符号)。
  • 点击“添加断点”按钮
  • 点击“运行”按钮
  • 执行应该在 _start 处中断
  • 切换到寄存器选项卡
  • 点击“Step into by instructions”按钮来浏览你的代码

  • Kdbg 似乎无法重新启动执行。看来程序必须被杀死然后再次运行。

    关于debugging - KDbg 调试器和组装有问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17308186/

    10-12 07:20