Debugging 如何获取当前函数?

Debugging 如何获取当前函数?,debugging,assembly,ollydbg,Debugging,Assembly,Ollydbg,在汇编中使用ollydbg调试器程序是否可以找到它正在执行的程序当前函数 这样做的原因是因为我创建的应用程序在特定时间内以70%的计算机使用率运行,我想知道为什么会这样,以及它是如何获得计算机使用率的 我知道我可以使用更简单的源代码调试器,但在这种情况下,不幸的是我不能使用,需要使用像ollydbg这样的调试器来解决这个问题,如何才能做到这一点?正如前面的一条评论所提到的,这对于探查器来说确实是一项更好的工作(如英特尔的VTune、AMD CodeAnalyst或Visual Studio的评测

在汇编中使用ollydbg调试器程序是否可以找到它正在执行的程序当前函数

这样做的原因是因为我创建的应用程序在特定时间内以70%的计算机使用率运行,我想知道为什么会这样,以及它是如何获得计算机使用率的


我知道我可以使用更简单的源代码调试器,但在这种情况下,不幸的是我不能使用,需要使用像ollydbg这样的调试器来解决这个问题,如何才能做到这一点?

正如前面的一条评论所提到的,这对于探查器来说确实是一项更好的工作(如英特尔的VTune、AMD CodeAnalyst或Visual Studio的评测工具)

但是,如果您仍然希望在OllyDbg中找到源代码,则使用调试符号正确编译的可执行文件将在主反汇编区域下方显示代码的执行行


取决于,如果您的代码是已编译代码(.exe),则需要使用调试信息(如GCC编译器的-g选项)来编译它才能找到确切的函数

完成此操作后,您可以使用GDB读取您编写的确切代码,并在加载程序后键入
list
对其进行调试

例如:

gcc -g test test.c
gdb -q ./test
[...]
(gdb) list

您是否在启用调试符号的情况下编译?所有调试信息都显示在应用程序中使用探查器而不是调试器。这是当前模块,而不是当前函数gdb不是那么直观和易于使用,因此您可能喜欢gdb的其他GUI版本,它们也可以执行相同的操作