什么是调试器程序?
调试程序是一种允许用户逐行查看另一个程序的程序。这允许用户识别不正确的代码并找出程序的流程。调试器让用户看到他们的程序是如何被计算机查看的。
调试器对于查找程序中的语义错误非常有用。因此,它是必要的,因为它可以帮助程序员可视化程序流程。调试器可能需要练习才能使用,但它非常值得,因为它减少了完善程序所需的时间。
调试器程序的特点
调试器程序提供基本功能,例如符号解析器、查询处理器、表达式解释器等。还有其他可用功能,例如逐步运行程序、停止程序以查看其当前状态、跟踪变量值等。一些调试器程序还可以在程序运行时对其进行修改。
在某些调试器程序中有一个称为反向调试的功能。它允许用户及时向后查看程序的执行情况。MicrosoftVisualStudio为C#、VisualBasic、.Net等提供反向调试。反向调试并不常用,但它是非常有用的功能。
调试器列表
一些常用的调试器程序是-
GNU调试器(GDB)
这是一个便携式调试器。它运行在许多类似于Unix的系统上。GNU调试器也可用于许多编程语言,例如C、C++、Pascal、Fortran、Java等。
GDB中有许多用于跟踪和更改程序执行的工具。用户可以使用GDB查看和修改程序的内部变量。此外,程序的函数可以独立于它们的正常执行被调用。
MicrosoftVisualStudio调试器
这是一个与MicrosoftVisualStudio一起使用的调试器。使用该调试器,无需退出正在运行的程序,即可立即修改和重新编译程序代码。
MicrosoftVisualStudioDebugger支持调试.Net和Windows语言(如C和C++)中的程序。这个调试器的一个问题是它无法追踪到以内核模式编写的代码。
雷达2
这也称为r2。它用于逆向工程和分析二进制文件。Radare2主要围绕反汇编程序构建,它将机器语言代码翻译成汇编语言代码。
这个调试器程序有一个陡峭的学习曲线,因为它没有图形用户界面。它确实有一个Web用户界面和一个名为Cutter的外部GUI。
LLDB调试器
该调试器具有可重用的组件,并使用了LLVM项目中的大量库。LLDB是一个免费的开源软件,就像LLVM项目的其他部分一样。
LLDB支持对用C、C++、Swift等编写的多个程序进行基本调试。
瓦尔格林德
这是一个免费的调试工具,本质上是一个使用即时技术(JIT)的虚拟机。Valgrind将程序转换为一种更简单的形式,称为中间表示。之后,它将中间表示转换为机器代码并让主机处理器运行它。
评论列表