Что такое __unwind $ в файле карты компоновщика - PullRequest
2 голосов
/ 13 марта 2009

Что означает символ "__unwind $" для сгенерированных файлов компоновщиков VS2008 (C ++)? У меня есть хороший кусок из них в файле карты компоновщика для моего приложения.

У меня есть журнал, в котором говорится, что сбой происходит при определенном смещении, скажем, «х». Когда я смотрю на карту компоновщика для этого смещения, я нахожу этот __unwind $ 41357, соответствующий смещению.

Также обычно есть какая-либо ссылка, чтобы понять формат файла файлов карты компоновщика?

Ответы [ 2 ]

3 голосов
/ 13 марта 2009

«Разматывание» происходит со стеком при возникновении исключения. Префикс __ указывает на символ, сгенерированный компилятором. Итак, основываясь на описании, вы получите сбой между броском и уловом. Я предполагаю, что вызываемые деструкторы вызываются из __unwind$ функций. Встроенный деструктор не будет иметь своего собственного стекового кадра, поэтому он будет отображаться в вызывающей функции __unwind$.

0 голосов
/ 13 марта 2009

Только предположение, но я бы сказал, что это часть кода, которая обрабатывает разматывание стека при возникновении исключения.

...