什么是链接器映射文件中的__unwind $ [英] What is __unwind$ in a linker map file
问题描述
对于VS2008(C ++)生成的链接器映射文件,符号__unwind $是什么意思?我有一个很好的他们在我的应用程序的链接器映射文件。
For VS2008 (C++) generated linker map files, what does the symbol "__unwind$" mean? I have a good chunk of them in the linker map file for my app.
我有一个日志,说一个崩溃发生在一个特定的偏移说'x'。当我查看链接器映射的偏移量,我发现这__unwind $ 41357对应的偏移。
I have a log which says a crash happens at a particular offset say 'x'. When I look at the linker map for this offset, I find this __unwind$41357 corresponding to the offset.
通常也有任何参考,以了解链接器映射的文件格式文件?
Also generally is there any reference to understand the file format of linker map files?
推荐答案
Unwinding是在抛出异常时使用堆栈发生的。 __
前缀表示编译器生成的符号。所以,基于描述,你会得到一个投掷和捕捉之间的崩溃。我的假设是,调用的析构函数是从 __ unwind $
函数中调用的。内联析构函数不会有自己的堆栈框架,因此它会出现在调用 __ unwind $
函数中。
"Unwinding" is happens with a stack when an exception is thrown. The __
prefix indicates a compiler-generated symbol. So, based on the description, you get a crash between a throw and a catch. My assumption is that the destructors called are called from the __unwind$
functions. An inlined destructor wouldn't have its own stackframe, so it would show up in the calling __unwind$
function.
这篇关于什么是链接器映射文件中的__unwind $的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!