【发布时间】:2026-02-10 02:15:01
【问题描述】:
对于 VS2008 (C++) 生成的链接器映射文件,符号“__unwind$”是什么意思?我的应用程序的链接器映射文件中有很大一部分。
我有一个日志说崩溃发生在一个特定的偏移量,比如“x”。当我查看这个偏移量的链接器映射时,我发现这个 __unwind$41357 对应于该偏移量。
一般还有什么参考资料可以理解链接器映射文件的文件格式吗?
【问题讨论】:
标签: c++ visual-c++ linker
对于 VS2008 (C++) 生成的链接器映射文件,符号“__unwind$”是什么意思?我的应用程序的链接器映射文件中有很大一部分。
我有一个日志说崩溃发生在一个特定的偏移量,比如“x”。当我查看这个偏移量的链接器映射时,我发现这个 __unwind$41357 对应于该偏移量。
一般还有什么参考资料可以理解链接器映射文件的文件格式吗?
【问题讨论】:
标签: c++ visual-c++ linker
只是一个猜测,但我想说它是在抛出异常时处理堆栈展开的代码的一部分。
【讨论】:
当抛出异常时,堆栈会发生“展开”。 __ 前缀表示编译器生成的符号。因此,根据描述,您会在投掷和接球之间发生崩溃。我的假设是调用的析构函数是从__unwind$ 函数调用的。内联析构函数没有自己的堆栈帧,因此它会显示在调用 __unwind$ 函数中。
【讨论】: