Vs如何调试程序:使用Kdbg调试程序集代码(kdbg)

我有一个带有一个.c C 源代码和一个.S 汇编源代码的项目。一旦编译和链接,是否有任法可以使用 Kdbg 调试.S 代码?我正在从.c 文件调用一个.S 函数,但在 Kdbg 中没有代码加载

3

在您的源代码中添加.file 指令,如:.file“sourceasem.s”Kdbg 将按预期使用它。

3

我只是尝试了kdbgthe KDE front-end for gdb,而不是几乎同名的Linux kernel de kgdb)。

它似乎没有像常规 gdb 的layout asm那样的正确反汇编模式。您可以将“内存”窗口设置为反汇编,并将地址设置为$pc(并在您单步更新),但这会占用内存窗口,并且在设置断点或向后滚动到当前 RIP / EIP 之前的指令时不是很灵活。

即使您正在调试 asm 源,您有时也希望调试器向您显示真正的反汇编,以及 / 而不是 asm 源。例如,在使用宏或 NASM%rep重复块的代码中。

AFAICT,kdbg对于 asm 调试来说不是一个很好的选择。带有layout asm/layout reg的文本模式 GDB 是可以的;有关提示,请参见标签 wiki 的底部。我也尝试过https://github.com/cs01/gdbgui。它具有反汇编模式,但不是很好。

正如 @ ivan 所说,如果您添加足够的元数据让它知道对象来自哪个源文件,kgdb 将允许您执行asm 源文件的源代码级调试

gcc:Build withgcc-g foo.S

NASM:nasm -felf64 -g -Fdwarf组装以包含 DWARF 调试信息。(NASM 默认为 STABS 调试信息,也可以使用。)

YASM:yasm -felf64 -gdwarf2组装。

有关从 asm 源构建静态 / 动态二进制文件的更多信息,请参见Assembling 32-bit binaries on a 64-bit system (GNU toolchain)

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(772)
小程序生成工具:生成 Mst响应工具(mst tool)
上一篇
服务器压力测试工具:内存压力测试工具(memory stress test)
下一篇

相关推荐

  • P sig:什么是koa:sess.sig

    关于P sig的问题,在koa session中经常遇到,我正在使用带有 Koa 的 Passport.js,我注意到当生成会话 cookie 时,它被称为koa:sess,并包含编码为 Base64 的会话信息。但是,还有另一个名为koa:sess.sig的 cookie,其目的并不明显。我的猜测是,它旨在阻止攻击者欺骗会话 (由于koa:sesscookie 只是包含用户 ID?)…

    2024-01-03 04:50:59
    0 24 64
  • gdb调试详解如何利用gdb进行程序调试

    示例示例GDB调试是一种用于查找程序中的错误和问题的强大工具。它可以帮助开发人员更好地理解代码,并且可以让他们更快地修复程序中的错误。GDB调试的基本步骤如下:…

    2023-03-16 02:44:47
    0 98 65
  • gdb调试器探索程序的内部结构

    GDB调试器是一种用于调试程序的强大工具,它可以帮助开发人员检查程序中的错误,并找出程序中的问题。GDB可以在源代码级别进行调试,可以查看变量的值,查看内存中的数据,跟踪函数的调用等等。…

    2023-04-14 04:09:20
    0 33 99
  • gdb单步调试命令利用GDB单步调试排查程序问题

    示例示例GDB单步调试命令是一种用于调试程序的命令,它可以帮助开发人员更好地理解程序的执行流程。GDB单步调试命令主要有以下几种:…

    2023-03-14 07:44:03
    0 40 64
  • gdb调试教程如何使用GDB调试程序

    GDB调试教程安装GDB:…

    2023-08-18 10:19:05
    0 23 39
  • 退出程序:gdb:退出程序而不退出gdb

    关于退出程序的问题,在how to quit gdb中经常遇到,我正在使用 gdb 调试程序。首先我load我的可执行文件,然后我continue运行程序。我有时想中断我的程序的执行,所以我做Ctrl + C。…

    2024-01-28 06:44:04
    0 68 38

发表评论

登录 后才能评论

评论列表(49条)