Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用堆栈跟踪检测函数_C++_Debugging_Stack Trace_Symbols - Fatal编程技术网

C++ 使用堆栈跟踪检测函数

C++ 使用堆栈跟踪检测函数,c++,debugging,stack-trace,symbols,C++,Debugging,Stack Trace,Symbols,我正在看一个带有调试器的应用程序(我没有源代码!)。 我在某个函数(导出函数)中放置了一个断点,然后查看堆栈跟踪。 显然,我看不到符号,但我可以看到DLL名称和序号 我的问题是如何判断堆栈跟踪中看到的函数是否已导出?或者更准确地说,我在堆栈跟踪中看到的序号是否与我在dependency walker中看到的序号相同 非常感谢!:-) 从Visual Studio命令提示符启动的命令dumpbin\exports name.dll,将告诉您所有导出的函数 这是一台windows机器。我不太明白你所

我正在看一个带有调试器的应用程序(我没有源代码!)。 我在某个函数(导出函数)中放置了一个断点,然后查看堆栈跟踪。 显然,我看不到符号,但我可以看到DLL名称和序号

我的问题是如何判断堆栈跟踪中看到的函数是否已导出?或者更准确地说,我在堆栈跟踪中看到的序号是否与我在dependency walker中看到的序号相同


非常感谢!:-)

从Visual Studio命令提示符启动的命令
dumpbin\exports name.dll
,将告诉您所有导出的函数


这是一台windows机器。我不太明白你所说的“名字”和“工具链”是什么意思TCS

TCS:我暗示了一个事实,即有多个调试器和多个链接器可以在DLL中生成不同类型的元数据

在这一点上,我已经用很好地“调试”(检查/审核)了第三方软件(包括DLL),现在似乎有了全新的版本2.0()

它使代码分析成为一种时髦(我想,如果您熟悉汇编语言和动态加载的话)。它当然很容易跟踪哪个模块调用哪个模块,并将这些(调用)映射到符号名(如果可用)。特别是OllyDbg是免费的

在商业方面,我相信有几种类似的工具,我记得它们是最有名的

希望有帮助


它将利用调试符号(如您可以从Microsoft下载的符号),甚至将Win32 API的参数转换为有意义的名称(即WM_PAINT而不是常量,也知道预期的LPPARAM布局等)

POW:“说出你的名字、平台和工具链”?这是一台windows机器。我不太明白你说的“名字”和“工具链”是什么意思。嘿,谢谢你的回答。我知道如何查看导出的函数,但我不知道在调用堆栈中看到的序号是否与在dependency walker中看到的相同。