Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.027 c
1-1119530302
webpauk
2005-06-23 16:38
2005.07.18
Потеря цвета


3-1118296116
rosl
2005-06-09 09:48
2005.07.18
нумерация


14-1119528354
Alex870
2005-06-23 16:05
2005.07.18
Command Line compiler


1-1120204747
kyn66
2005-07-01 11:59
2005.07.18
Как подставить путь к имени таблицы?


4-1116857153
race1
2005-05-23 18:05
2005.07.18
замена системной функции




   Наверх