debugging - KDbg 调试器和程序集有问题

标签 debugging assembly gdb nasm kdbg

我刚刚开始使用 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 .txtSECTION .text因为
当 GDB 尝试读取符号时,它报告“完成”而不是“在符号文件中找不到任何代码段”

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

  • 运行 kdbg
  • 打开可执行文件
  • 切换到断点选项卡
  • 在编辑框中输入“_start”(我认为这是您拥有的唯一可见符号)。
  • 点击“添加断点”按钮
  • 点击“运行”按钮
  • 执行应该在 _start
  • 处中断
  • 切换到寄存器选项卡
  • 点击“按说明进入”按钮以遍历您的代码

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

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

    相关文章:

    python - 调试时如何调用 Python 的列表?

    javascript - 未捕获范围错误 : Maximum call stack size exceeded 故障排除

    c - 使用段寄存器 FS 进行调试

    assembly - 这个英特尔 jmpq 指令有什么作用?

    python - 如何在 PyDev 中禁用模板调试

    java - 文件名上的黄色背景在 Intellij 中意味着什么?

    c++ - 从德州仪器 C200 DSP 检索代码

    c++ - 有没有办法在 gdb 中自动查找方法属于哪个 c++ 命名空间?

    gdb - 什么是启发式围栏?

    无法覆盖 gdb 之外的返回地址