Win32: графический отладчик, поддерживающий сервер символов?

Я пытаюсь отладить программу, для которой у меня нет исходного кода: explorer.exe

Это собственное приложение Win32 от Microsoft, и символы доступны.

Все, что мне сейчас нужно, это (графический) отладчик, поддерживающий символы.

  • OllyDbg - это графический отладчик, но он не поддерживает символы.
  • Delphi - графический отладчик, но не поддерживает символы.
  • WinDbg - это не графический отладчик, поддерживающий символы.
  • Visual C# Express Edition - это не отладчик Win32.
  • Process Explorer поддерживает символы, но не является отладчиком
  • Монитор процессов поддерживает символы, но не отладчик

Были ли написаны какие-либо новые графические отладчики, поддерживающие сервер символов Microsoft, за последние 6 месяцев, о которых я не знаю?


Графический отладчик - это тот, где вы можете увидеть разборку и можете выполнить инструкции Step Into и Stop Over, например:

Delphi

Win32: графический отладчик, поддерживающий сервер символов?

OllyDebug:

Win32: графический отладчик, поддерживающий сервер символов?

IDA Pro

альтернативный текст http://www.hex-rays.com/idapro/linux/remotedebugger2.gif

WinDbg не показывает вам ряд инструкций:

альтернативный текст http://windowsitpro.com/Files/11/21217/Figure_01.gif

Не могли бы вы пояснить, что вы подразумеваете под «графическим отладчиком»? Например, хотя windbg, похоже, сильно управляется командами, он также имеет альтернативные «визуальные» интерфейсы для большей части своих функций.

reuben 05.01.2009 01:33

Ага ... Не совсем уверен, насколько OllyDbg оценивается как "графический", но WinDbg этого не делает.

Shog9 05.01.2009 02:46

WinDbg на самом деле делает показывает вам списки инструкций - вам просто нужно найти нужные представления и окна в его меню. Он даже может выполнять отладку на уровне исходного кода, как Visual Studio; просто убедитесь, что ваши PDB заполнены и вы указываете WinDbg, где находится ваш исходный код.

reuben 05.01.2009 06:00
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
3
1 231
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

Что ж, по сравнению с cdb WinDbg - графический отладчик, хотя и не самый дружелюбный в мире!

Visual Studio Pro, безусловно, является графическим отладчиком и поддерживает сервер символов, поэтому вы можете попробовать Visual Studio C++ Express.

WinDBG - это просто! Возможно, он имел в виду отладчик с кнопками, которые нужно нажимать, а не вводить команды.

gbjbaanb 05.01.2009 03:54

Вроде, как бы, что-то вроде. мне нравится видеть инструкции по сборке; где я могу войти и перешагнуть через них.

Ian Boyd 05.01.2009 05:31

Ознакомьтесь с IDA Pro: http://www.hex-rays.com/idapro/

Это и дизассемблер, и отладчик, и он поддерживает символы.

Дополнение Visual Studio C++ Экспресс поддерживает как управляемую (.Net), так и собственную (Win32) отладку. Он поддерживает сервер символов.

Я не могу понять, как заставить его отлаживать приложение Win32 или заставить его использовать символы.

Ian Boyd 23.11.2009 21:34

См. Связанный вопрос: stackoverflow.com/questions/360912/…, в котором подробно описаны попытки отладки с помощью Visual Studio.

Ian Boyd 23.11.2009 21:36

Если под «Графическим отладчиком» вы имеете в виду, что он покажет вам ассемблерный код, то WinDBG - это то, что вы действительно ищете. Вам просто нужно знать, где найти то, что вы ищете:

  • alt-6 Стек вызовов
  • alt-7 Разборка

Если вы откроете меню Окно, вы можете выбрать Автоматически открывать разборку. Это приведет к открытию Разборка для определенного кадра стека, когда вы щелкнете по нему в окне Стек вызовов.

По общему признанию, WinDBG не имеет всех тех красивых цветов, которые есть у других, но он чрезвычайно функциональный.

Windbg наверняка сможет удовлетворить вашу цель, ознакомившись с инструкциями по сборке.

Откройте окно разборки с помощью View-> Disassembly.

Примечание: Windbg имеет 2 режима «режим источника включен» и «режим источника выключен», поэтому по умолчанию вы можете работать только с функциями, для которых у вас есть исходный код. Ищите значки на панели инструментов:

alt text

Или установите с помощью команд windbg l+t или l-t.

В вашем примере показано, что вы используете сервер символов, но для других одна отправная точка - это общедоступные серверы символов MS и Firefox:

srv*c:\Symbols*http://msdl.microsoft.com/download/symbols;srv*c:\Symbols*http://symbols.mozilla.org/firefox

Другие вопросы по теме