Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Генерирование отладочной информации для MSVC / 15 сообщений из 15, страница 1 из 1
18.03.2021, 23:40
    #40055080
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генерирование отладочной информации для MSVC
Есть очень хитропокрученный проект. В 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
18.03.2021, 23:58
    #40055081
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генерирование отладочной информации для MSVC
_Vasilisk_,

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

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

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

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

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

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

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


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

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

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

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

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

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

OutCom чей?

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

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

Вот и чудненько, значит DrMemory на него должен сработать идеально.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
22.03.2021, 14:12
    #40055862
GunSmoker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Генерирование отладочной информации для MSVC
_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
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Генерирование отладочной информации для MSVC / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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