Форум: "Основная";
Текущий архив: 2003.10.02;
Скачать: [xml.tar.bz2];
ВнизОтладка DLL встроенным отладчиком. Найти похожие ветки
← →
SergeyBG (2003-09-17 20:24) [0]Не могу заставить Дельфи 7.0 отлаживать мной написанную ДЛЛ из мной написанного ЕХЕ. ДЛЛ - активный проект. Откомпилирована с дебаг-информацией. Однако точки останова игнорируются.
Загружаю ДЛЛ с помощью функции LoadLibrary.
Что делать? У шестого дельфи те же проблемы.
← →
oomneeq (2003-09-17 20:42) [1]Ecть разные выходы.
Я могу тебе посоветовать свой
Раз ты загружаешь через лоадлайбрэри, значит вызывающий (хост)
проект тоже твой.
В этом случае помести его и твою длл в одну проект-группу,
кроме опции компилятора Debug info (ты вроде бы уже сделал)
скомпилируй длл с опцией линкера External debug info
(птичка слева внизу на закладке Linker в Project options)
- это приводит к появлению *.rsm файла рядом с *.dll
а полсле этого можно стартовать хост-проект самостоятельно, даже не назначая его длл-ному проекту в качестве хоста,
при наличии rsm-файла отладчик запрыгивает в код дллки.
Этот способ особенно удобен, когда много длл с взаимо-вызовами-
заносишь их все в одну проект группу и компилишь как описано-
дальше как сказано, пускаешь главный проект и прыгаешь отладчиком по всем своим дллкам.
удачи в ловле блох!
← →
SergeyBG (2003-09-18 19:02) [2]Спасибо, заработало !!! А группа уже была.
← →
Владислав (2003-09-18 19:06) [3]> oomneeq © (17.09.03 20:42) [1]
А хукнутые dll также можно отлаживать?
← →
oomneeq (2003-09-18 22:24) [4]>Владислав © (18.09.03 19:06) [3]
Не знаю, не хукал :-)
← →
Immortal_Death (2003-09-19 00:06) [5]Владислав ©
ага, можно, только хуки неприменно ставь поглабальнее... ;)
← →
JS (2003-09-19 09:37) [6]oomneeq, ты упомянул, что есть разные выходы. Подскажи, что делать, если host application не мой, а левый.
Заранее благодарен.
← →
Владислав (2003-09-19 09:50) [7]> oomneeq © (17.09.03 20:42) [1]
External debug info
Это где такая "птичка"? У меня Delphi 6. Птички такой нет :(
← →
oomneeq (2003-09-19 12:00) [8]2Владислав [7]
>External debug info
>то где такая "птичка"? У меня Delphi 6. Птички такой нет :(
Aй эм сори, я неудачно выразился
У меня 5я немецкая дельфи, по немецки это
Mit ext. debug Symbolen
6й у меня нету а в 7й английской она называется
Include remote debug symbols
а находится там где сказал, на закладке Linker в Project Options
2JS (19.09.03 09:37) [6]
Универсальное правило такое:
1)dll, скомпиленая описаным способом и ее rsm должны лежать
рядом.
2)Debug source path (из Project option compiler)
должен содержать путь к dll-ским исходникам
в этом случае при любом хосте (ну естессно, грузящем эту длл :-))
отладчик найдет все что надо.
Просто в частном случае, когда например все в одном каталоге,
условия м.б. необязательными.
Удачной вам всем отладки.
← →
oomneeq (2003-09-19 12:22) [9]>oomneeq © (19.09.03 12:00) [8]
В догонку
Имея Dll, rsm и соответствующие исходники и настроив как описано
можно отлаживать длл на ващще на другом компе- там например, где эту дллку невозможно или ненужно компилить из-за неустановленых компонент и тп. - например вы отсылаете свою дллку смежникам,
они стартуют приложение, использующее вашу дллку и говорят, мол ошибочка. Вот тогда то им и помогут ваши rsm+исходники.
Shit может случиться если имена файлов dll исходников совпадают с имеющимися в других каталогах, а эти каталоги стоят например
в Search path, или в любом другом, до которого дело доходит раньше чем до описанного в Debug path актуального исходника
Ну например при многократных метаниях проектов из каталога в каталог на этапе реорганизации или вообще безо всякой организации
когда по всему диску валаятся куча версиий одного и того же файла
Тогда отладчику не грех и ошибиться :-)
Так что следите за порядком на ваших дисках. Ну и в головах :-)
Хэппи кодинг.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.10.02;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c