Как получить StackFrame во время компиляции из PDB? - PullRequest
0 голосов
/ 30 марта 2010

Мне нужно получить стековый фрейм функции из любой PDB (все входные / выходные аргументы и их типы). У меня есть имя функции и адрес определенной функции из PDB, есть ли способ получить все параметры (вход / выход) этой функции из файла PDB?

Функции написаны в неуправляемом коде.

С уважением,

Усман

Ответы [ 3 ]

2 голосов
/ 30 марта 2010

У вас беспорядок понятий. PDB, как и любой другой файл, не содержит стека или кадров стека, потому что это то, что создается во время выполнения. .net exe / dll содержит метаданные для классов, так что вы можете заглянуть в сигнатуру методов. Вы можете получить кадры стека в своем коде (класс Google StackFrame / StackFrame), но все же вы не можете получить все данные из стека, например значения параметров.

1 голос
/ 02 апреля 2010

Чтобы извлечь имена функций, адреса и типы аргументов из дампа, вы можете использовать программу dia2dump. Он доступен в качестве образца SDK для доступа к интерфейсу отладки (dia-sdk). Вы можете найти его в Visual 2008 или 2010 под C:\Program Files\Microsoft Visual Studio (your version)\DIA SDK\Samples\DIA2Dump

1 голос
/ 30 марта 2010

Невозможно получить кадр стека во время компиляции. Стек является концепцией времени выполнения.

...