Windows下利用WinDBG、OllyDBG进行源码级调试

        一般应用程序编译后会创建exe/dll/sys(可执行文件)、pdb(程序数据库)、map(编译信息)等文件,而源码调试需要可执行文件、程序数据库文件、还有源代码文件。(由于符号信息已经写入到程序数据库文件里,如果提到符号文件,一般都是指程序数据库文件)

      我们知道,pdb文件里记录着调试程序所需的所有信息,调试器进行源码调试时,是先通过pdb文件找到对应符号的源文件所在位置,并定位当前代码在源文件里的位置,显示到调试器里。所以,使用调试器源码调试时,必须保证以下几点,才能正确调试:

        1.文件版本统一。可执行程序、程序数据库文件还有源码文件必须是同一工程同一时刻编译所生成的。

        2.设置符号文件路径。确保调试过程中所有模块的符号文件齐全并在调试器里正确设置符号文件路径。

        3.设置源文件路径。必须把源码文件放到程序数据库文件所记录的目录下(编译时,源文件所在目录),或者通过调试器设置源码文件所在目录(如果调试器支持)。

       

       默认情况下,调试器会在可执行模块所在目录搜索程序数据库文件,如果没有找到才

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windbg、KD、CDB和NTSD是用于Windows调试工具,它们广泛应用于开发人员和调试人员的工作中。 Windbg是一种强大的用户模式和内核模式调试器,可以用于分析和调试Windows应用程序和操作系统。它提供了丰富的调试功能,如断点调试、内存查看、栈跟踪等,能够帮助开发人员定位并解决应用程序中的问题。 KD(Kernel Debugger)是一种内核模式调试器,用于调试Windows操作系统的内核。它可以与目标系统进行远程调试,并提供了内核级别的调试功能。通过KD,我们可以获取Windows操作系统内核的状态、查看和修改内核对象、分析内核崩溃等。它是对于内核级别问题进行调试的首选工具。 CDB(Console Debugger)是一种命令行调试器,可以用于调试Windows应用程序和驱动程序。与Windbg相比,CDB更加轻量级,适合用于快速调试和查找应用程序中的问题。它具有调试脚本支持、内存查看和修改、断点调试等功能,比较适合有经验的调试人员使用。 NTSD(NT Symbolic Debugger)是一种应用于Windows NT内核的调试器,支持用户模式和内核模式的调试。NTSD具有命令行界面,提供了类似Windbg和CDB的调试功能,用于分析和调试Windows应用程序和驱动程序。它是早期Windows调试工具的一个版本,现在已经被Windbg和CDB所取代。 总结来说,Windbg、KD、CDB和NTSD都是Windows调试工具,用于分析和调试应用程序和操作系统的问题。它们在不同场景下具有不同的特点和功能,开发人员和调试人员可以根据具体的调试需求选择合适的工具来进行调试工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值