Форум: "Основная";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];
ВнизОтладка не работает в dll. Найти похожие ветки
← →
Kolan © (2005-06-29 11:44) [0]Здравствуйте,
Есть проект состоит из формы и dll. Project Manager"ом они обеденины в один проект. Раньше при отладки если функция находилась в модуле dll, то отладчик спокойно туда заходил. Сегодня не заходит. До взова доходит, и проскакивает дальше. Как вернуть отладку всего проекта? Win98 D7
← →
Digitman © (2005-06-29 11:53) [1]где кто у тебя "находится" - совершенно непонятно
иллюстрируй структуру проекта в тексте
← →
Kolan © (2005-06-29 12:34) [2]Пример: Нажимаю кнопку там код
EvalConnectionKoeff(...);
Она находится в dllfunction EvalConnectionKoeff; external "KFreGrafCalculationsLib.dll"
name "EvalConnectionKoeff";
В dll она выглядит так.function EvalConnectionKoeff(...): Double;
begin
{...}
end;
Ставлю точку остонова на кнопку. И пошел F7. Сначала попаду на вызов функциивнутри обработчика OnClick. Дальше на вызов функции из dll. А вот дальше я должен попасть на код самой этой функции. Те как бы внутрь dll. И так оно всегда и происходило раньше. А сейяас немогу.
← →
Digitman © (2005-06-29 12:46) [3]
> так оно всегда и происходило раньше
потому что ты трассировал код процедуры, находящейся в том же (текущем) отлаживаемом проекте, т.е. exe-проекте, содержащем форму и ту самую кнопку, при нажатии на которую вызывалась эта самая процедура
> А сейяас немогу
а сейчас ты вынес эту процедуру в dll, это совершенно другой проект, не тот который ты отлаживаешь (а отлаживать ты как и раньше продолжаешь exe-проект)
выбирай - либо тебе нужна трассировка кода dll-проекта либо exe-проекта ... при отладке-трассировке Делфи способна использовать исходники лишь того проекта, который в дан.момент открыт.
← →
Kolan © (2005-06-29 12:58) [4]Да нет я ничего не менял. С самого начала функция была в dll. А проект был один состояший из двух(Использовал Project Manager). И структуру программы я не менял. Но трассировка пропала.
Еще пример NEw-> application. Дальше Project Manager -> New Dll Wizard. Пишем ф-цию. в dllfunction Pr: Integer; stdcall;
var
I: Integer;
begin
I := 1;(*)
Result := I;
end;
{$R *.res}
exports
Pr;
В главной формеfunction Pr; external "Project2.dll";
В кнопкеPr;
Трассируем Все работает и в (*) заходит.
В другом проекте нет. Хотя он также сделан. Только не сейчас а неделю назад я его слделал.
← →
Eraser © (2005-06-29 13:06) [5]Kolan © (29.06.05 12:58) [4]
Если проекты с dll и с нужным exe в разных папках, перед трассировкой ДЛЛ удали её из папки с запускаемым exe.
← →
Digitman © (2005-06-29 13:12) [6]
> проект был один состояший из двух
проет не может "состоять из двух", не выдумывай.
если речь идет о группе проектов (bpg), состоящей из ехе-проекта и dll-проекта, то это совсем иное дело
для каждого из проектов в составе группы в его свойствах в опциях компиляции д.б. включены все опции отладки, после чего вся группа д.б. пересобрана (меню Build All Projects)
← →
Kolan © (2005-06-29 13:36) [7]Навер но дело как раз в этих
> опциях компиляции
так как Build я делал не раз. Не знаете какие именно надо включить чтобы получить такую отладку как я описал. Главное если новую группу создать всё работает...
← →
Digitman © (2005-06-29 13:40) [8]Compiler -> Debugging :
Debug Information = Yes
Local Symbols = Yes
Reference Info = Yes
← →
Kolan © (2005-06-29 14:28) [9]Так всё и стоит во всех проектах группы. Отключил везде оптимизацию. Сделал Билд. Ничего. Ставлю Break Point на функцию внутри dll. Она становится (x). Мож еще чего надо проверить?
← →
evvcom © (2005-06-29 14:49) [10]exe вызывает точно ту dll, которая только что скомпилилась? Если dll лежит не в той же папке, что и exe, можешь запросто нарваться, что dll грузится, например, из system. Простой тест: открой проект с dll, настрой параметры запуска и поставь бряк в dll. Останавливаешься на бряке?
← →
Kolan © (2005-06-29 15:08) [11]Всё наконец-то. Забыл настроить параметры запуска. Интересно без этого ведь работало... а перестало только сейчас. Благодарю за помощь :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.039 c