Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.18;
Скачать: CL | DM;

Вниз

Отладка не работает в 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(...);

Она находится в dll
function 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. Пишем ф-цию. в dll
function 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.036 c
1-1119909466
Контр
2005-06-28 01:57
2005.07.18
Почему могут не срабатывать сообщеня OnMouseEnter и OnMouseLeave?


1-1119559059
NewWonder
2005-06-24 00:37
2005.07.18
Пара вопросов о DLL


4-1116826440
rokstar
2005-05-23 09:34
2005.07.18
Задать кнопки "Пуск" картинку в ХР


1-1119719649
NightStranger
2005-06-25 21:14
2005.07.18
Не могу закрыть Excel


9-1112387548
Green_Templar
2005-04-02 00:32
2005.07.18
dxdraw1.fillrect