Всем привет,как в windbg посмотреть все референсы на адрес, иначе говоря, как посмотреть откуда вызывалась функция?
И как можно идентифицировать начало функции в ассемблерном коде windbg?
Re: WinDbg
От:
Аноним
Дата:
25.02.13 11:03
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Всем привет,как в windbg посмотреть все референсы на адрес, иначе говоря, как посмотреть откуда вызывалась функция? А>И как можно идентифицировать начало функции в ассемблерном коде windbg?
символы загрузи, он тебе все покажет
Re[2]: WinDbg
От:
Аноним
Дата:
25.02.13 12:32
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Аноним, Вы писали:
А>>Всем привет,как в windbg посмотреть все референсы на адрес, иначе говоря, как посмотреть откуда вызывалась функция? А>>И как можно идентифицировать начало функции в ассемблерном коде windbg?
А>символы загрузи, он тебе все покажет
в том и дело, что символов нет, точнее они есть, но неверные
Здравствуйте, Аноним, Вы писали:
А>в том и дело, что символов нет, точнее они есть, но неверные
Тогда Вы слишком многого хотите от WinDbg. Его удобство исключительно в работе с отладочными базами, по которым он добывает нужную информацию, а дизассемблер у него убогий и примитивный. Если Вам требуется анализ кода — делайте это в нормальном аналитическом дизассемблере.
Re[4]: WinDbg
От:
Аноним
Дата:
27.02.13 07:25
Оценка:
Получается,что в случае release и debug версии у меня создаются следующие файлы : .map, .pdb и .sys, если я указываю при анализе минидампа в символах путь к этим файлам, то в случае с release сборкой я получаю в качестве места,где произошло падение что-то вроде Driver!memcpy+0x2ee,а при debug сборке указание на место в исходнике. Почему так получается, возможно я что-то упустил?
Здравствуйте, Аноним, Вы писали:
А>Получается,что в случае release и debug версии у меня создаются следующие файлы : .map, .pdb и .sys
.map создается исключительно для Вас, отладчики и дизассемблеры его не используют — вся нужная информация содержится в .pdb.
А>если я указываю при анализе минидампа в символах путь к этим файлам, то в случае с release сборкой я получаю в качестве места,где произошло падение что-то вроде Driver!memcpy+0x2ee,а при debug сборке указание на место в исходнике. Почему так получается, возможно я что-то упустил?
Возможно, в настройках конфигурации Release у Вас включено только создание .pdb линкером, без создания развернутой отладочной информации компилятором. В этом случае в .pdb включается лишь информация о модулях. Ну и не забывайте об оптимизации — если у Вас в функциях (даже разных) встречаются повторяющиеся участки кода достаточного размера, компилятор в режиме максимальной оптимизации может их объединить, и тогда понять, в какой функции произошло исключение, можно только по предыстории.