powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Генерирование отладочной информации для MSVC
15 сообщений из 15, страница 1 из 1
Генерирование отладочной информации для MSVC
    #40055080
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть очень хитропокрученный проект. В exe файле создается In-process COM объект, который в свою очередь создает Out-process COM объект

Out-process COM объект написан на MSVC и скомпилирован под 64 битную платформу. exe и InProcess объект скомпилированы на Delphi 10.3 под 32 битную платформу.

Проблема: при определенных действиях процесс, который запускается для внешнего объекта падает. В системном логе при этом появляется сообщение
Имя сбойного приложения: OutCom.exe, версия: 1.0.0.1, метка времени: 0x605378e7
Имя сбойного модуля: OutCom.exe, версия: 1.0.0.1, метка времени: 0x605378e7
Код исключения: 0xc0000005
Смещение ошибки: 0x0000000000580fcd
Но когда я пытаюсь запустить отладку под MSVC, то отладчик говорит, что 0xc0000005 уже происходит в делфийском объекте и показывает мне дизасемблированный код.

Я пытался по этой инструкции сгенерировать pdb файл для делфийского объекта. Файлы создаются, но ни dbg, ни pdb файлы MSVC не загружает. При ручной загрузке появляется сообщениеA matching symbol file was not found in this folder

Никто не подскажет, как получить перевариваемую debug info для MSVC? tds2dbg дает тот же результат. tds2pdb при попытке создания файла выдает ошибку парсинга at Program.ParseTds(FileStream stm)
at Program.Main(String[] args)


С уважением, Vasilisk
...
Рейтинг: 0 / 0
Генерирование отладочной информации для MSVC
    #40055081
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

Самый продвинутый отладчик это WinDBG, ставится из WinSDK. Может последних версий и прожует вашу эрзац-pdb.

Но он сложнее всей дельфы вместе взятой (

В конце концов, можно посмотреть на асм со стороны дебаггера и найти, где такая в Д.
...
Рейтинг: 0 / 0
Генерирование отладочной информации для MSVC
    #40055083
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemargl
Может последних версий и прожует вашу эрзац-pdb.
Как бы и Вижуал Студия последняя. Подозреваю, что где-то накосячили с формированием файла
Siemargl
В конце концов, можно посмотреть на асм со стороны дебаггера и найти, где такая в Д.
Извращений можно много придумать. Хотелось бы без них.

Конечная цель не найти конкретный баг - это как раз просто, а получить рабочий алгоритм для поиска любых багов (а их будет еще много). Сейчас приходится отлаживаться через MessageBox
...
Рейтинг: 0 / 0
Генерирование отладочной информации для MSVC
    #40055084
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

VS это для кажуалов. Максимум можно получить только в WinDBG.

Проблема с дебагинфо сугубо борландовская и прочих NIH.

Вместо МсгБокс рекомендую стектрейс.
...
Рейтинг: 0 / 0
Генерирование отладочной информации для MSVC
    #40055140
Barmaley57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Сейчас приходится отлаживаться через MessageBox
Попробуй через OutputDebugString + DbgView (sysinternals)
...
Рейтинг: 0 / 0
Генерирование отладочной информации для MSVC
    #40055142
Barmaley57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Самый продвинутый отладчик это WinDBG
Какая же это кака! Просто аццки неудобный. Но мощный конечно.
...
Рейтинг: 0 / 0
Генерирование отладочной информации для MSVC
    #40055206
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот тут чел пытается сгенерить pdb для дельфей, там какая-то совсем суровая магия
...
Рейтинг: 0 / 0
Генерирование отладочной информации для MSVC
    #40055308
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Никто не подскажет, как получить перевариваемую debug info для MSVC? tds2dbg дает тот же результат. tds2pdb при попытке создания файла выдает ошибку парсинга at Program.ParseTds(FileStream stm)
at Program.Main(String[] args)


Порылся тут немного из интереса. Нашел страничку на Еврике

И с нее есть ссылка на обновленный tds2pdb с исходниками
...
Рейтинг: 0 / 0
Генерирование отладочной информации для MSVC
    #40055309
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barmaley57
_Vasilisk_
Самый продвинутый отладчик это WinDBG
Какая же это кака! Просто аццки неудобный. Но мощный конечно.
Его облагородили в последних версиях Win10 SDK
...
Рейтинг: 0 / 0
Генерирование отладочной информации для MSVC
    #40055365
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На 64-битах всё тухло. Не взлетит . На 32-битах - можно.

Можно попробовать старые версии продуктов MS, которые нормально поддерживали DBG + правки вон по той ссылке.
...
Рейтинг: 0 / 0
Генерирование отладочной информации для MSVC
    #40055370
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GunSmoker
На 32-битах - можно
У меня делфевые приложения 32 битные

ЗЫ. А Эмбаркадера вообще не двигается в сторону генерирования debug info, которую будут понимать все?
...
Рейтинг: 0 / 0
Генерирование отладочной информации для MSVC
    #40055373
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Имя сбойного модуля: OutCom.exe, версия: 1.0.0.1, метка времени: 0x605378e7
Код исключения: 0xc0000005
Смещение ошибки: 0x0000000000580fcd

Но когда я пытаюсь запустить отладку под MSVC, то отладчик говорит, что 0xc0000005 уже
происходит в делфийском объекте и показывает мне дизасемблированный код.

Сообщение об ошибке может называть неправильное имя модуля только в одном случае:
выполняется код библиотеки, которая уже выгружена.

OutCom чей?

В любом случае проще всего будет взять сообщение отладчика с ассемблером и стэком вызовов,
а потом долго сопоставлять их с map-файлом, сгенерированным Delphi.

PS: Теоретически можно напустить на это зоопарк DrMemory, но восстанавливать соответствие адресов строкам всё равно придётся по map.
...
Рейтинг: 0 / 0
Генерирование отладочной информации для MSVC
    #40055647
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
OutCom чей?
Мой. Это Си++ Com сервер
Dimitry Sibiryakov
В любом случае проще всего будет взять сообщение отладчика с ассемблером и стэком вызовов, а потом долго сопоставлять их с map-файлом, сгенерированным Delphi.
Мысль! Тем более, что такая утилита у меня уже есть. Большое спасибо за идею
...
Рейтинг: 0 / 0
Генерирование отладочной информации для MSVC
    #40055653
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Мой. Это Си++ Com сервер

Вот и чудненько, значит DrMemory на него должен сработать идеально.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Генерирование отладочной информации для MSVC
    #40055862
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
У меня делфевые приложения 32 битные


Сейчас вспомнил, что мне тоже не удалось заставить Visual Studio работать с Delphi. Process Explorer - пожалуйста, но не VS. Что-то ей не нравится. И вроде на StackOverflow такой вопрос был, но не могу найти.

Думаю, можно сделать так - сгенерируй .dbg, отлаживайся в VS, остановись на исключении, потом запускай Process Explorer (или Threads Snapshot, тогда .dbg не нужен) и смотри стек в запаузенном процессе (можно его возобновить, когда снапшот начал сниматься).

Как вариант - в Delphi можно EurekaLog добавить, а в ней включить run-time logging , тогда она в CodeSite лог скинет всё, что происходит в exe (что касается исключений).
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Генерирование отладочной информации для MSVC
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]