May 29th, 2013

HOWTO: find static symbol for use in VS2010 debugger

Например, чтобы поставить breakpoint на функцию при отсутствии исходников или посмотреть переменную.

— найти на диске C:\Program Files (x86)\Microsoft Visual Studio 10.0\DIA SDK\Samples\DIA2Dump
— собрать его
— запустить следующую команду: dia2dump bla-bla.pdb -s бла-бла.pdb | less
— найти свой символ, он должен выглядеть примерно так:
Function : static, [xxxx][0001:xxxx], len = yyy, public: virtual тип класс::имя(типы)
— посмотреть в modules регион, куда загружена длл
— открыть окно дизассемблера.
— ввести в адрес N + M, где N — это начало региона из дредыдущего пункта, M — xxxx из дампа.
— профит

Литература: http://msdn.microsoft.com/en-us/library/x93ctkx8%28v=vs.100%29.aspx

PS: Для глобального надо делать то же самое, но для dll есть готовая утилита, dumpbin /export. Нет, написать имя не получится: скажет "не могу найти символ"