CDB загружает файл .pdb со смещением

Я пытаюсь загрузить файл символов по определенному смещению в памяти в CDB. Что-то вроде команды для GDB:

gdb add-symbol-file address

Есть какой-либо способ сделать это? Я попытался создать плагин WinDBG, но не могу найти никаких полезных функций.


person N. Ionita    schedule 09.09.2016    source источник
comment
Я не уверен, что это должно означать. Я всегда думал, что символы загружаются в адресное пространство WinDbg. Почему вы хотите контролировать расположение памяти процесса WinDbg? Для меня это похоже на проблему XY. Чего вы действительно пытаетесь достичь с помощью этих символов?   -  person Thomas Weller    schedule 09.09.2016
comment
я забыл упомянуть, что я работаю над файлами дампа. Я не отлаживаю приложение, мне нужно извлечь как можно больше информации из дампа.   -  person N. Ionita    schedule 09.09.2016
comment
Тогда почему бы просто не загрузить символы с помощью ld *? Какая польза от загрузки их на определенный адрес?   -  person Thomas Weller    schedule 09.09.2016
comment
Я пытаюсь отладить файл дампа для пользовательского двоичного файла. в linux есть команда для загрузки символов по произвольному адресу: gdb add-symbol-file address. Есть ли аналог в WinDBG?   -  person N. Ionita    schedule 09.09.2016
comment
Почему вы ищете команду, которая вам не нужна. Попробуйте ld *   -  person Thomas Weller    schedule 09.09.2016


Ответы (2)


Взгляните на AddSyntheticSymbol и AddSyntheticModule. Найдите расширение woodmann или google addsym windbg для примера использования AddSyntheticSymbol, я на 4 дюймах, не могу напечатать больше

person blabb    schedule 09.09.2016
comment
Я изучил то, что вы сказали. Но мне это не очень помогает. Моя ситуация такова: у меня есть модуль, в котором есть несколько пользовательских разделов двоичного кода. У меня есть pdb для каждого пользовательского двоичного файла. Я не могу использовать AddSyntheticModule, потому что этой функции нужен модуль, а не кусок кода. - person N. Ionita; 13.09.2016
comment
я не уверен, что понимаю вашу пользовательскую ситуацию, которую вы прокомментировали ранее, что вы работали с файлами дампа, теперь вы говорите, что у вас есть двоичный файл, сможете ли вы расширить то, о чем говорите, если вы говорите о двоичном файле, вы конкретно имеете в виду какой-либо исполняемый формат в окнах, таких как exe, dll, sys и т. д., были ли они скомпилированы с помощью любого компилятора на основе Windows, который выдает pdb, насколько я знаю, все компиляторы генерируют один единственный pdb для всего модуля, а не n количество pdb для каждого раздела кода - person blabb; 14.09.2016

Этот вопрос имеет большой смысл. Например, при попытке вызова WindProc для незагруженного модуля. Для этого используйте команду .reload.

.перезагрузить документы

person Steve Johnson    schedule 12.09.2016
comment
Насколько мне известно, команда .reload сопоставляет каждому модулю один файл символов. Проблема в моем случае заключается в том, что я хочу указать больше файлов символов для одного модуля (в этом модуле у меня есть пользовательские разделы двоичного кода). Вот почему мне нужно что-то вроде показанной команды gdb. - person N. Ionita; 13.09.2016