Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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(...);

Она находится в 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.034 c
1-1120128240
Cat
2005-06-30 14:44
2005.07.18
Динамический массив


6-1113234440
Vadajhava
2005-04-11 19:47
2005.07.18
как положить файл на FTP?


3-1118154518
ryds
2005-06-07 18:28
2005.07.18
Подскажите какой есть аналог SQL-функции REPLACE в IB?


3-1116594233
highlander
2005-05-20 17:03
2005.07.18
Настройка BDE и проблема кириллицы


1-1120334666
Alex-r
2005-07-03 00:04
2005.07.18
Печать на матричный принтер





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский