什么是链接器映射文件中的__unwind $ [英] What is __unwind$ in a linker map file

查看:215
本文介绍了什么是链接器映射文件中的__unwind $的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对于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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆