Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 13:55 25.04.24 
Компютри и Интернет
   >> Delphi
Всички теми Следваща тема *Кратък преглед

Тема BreakPoint  
АвторHoвoбpaнeц (Нерегистриран)
Публикувано24.11.05 17:03



Имам програмна група с с няколко проекта - 1 exe и няколко DLL-a.Когато искам да трасирам някой DLL правя този проект активен слагам си Breakpoint,
в Run->Parameters указвам host application ,стартирам но не спира не breakpoint-а.
Какъв може да е проблема?



Тема Re: BreakPointнови [re: Hoвoбpaнeц]  
Автор vido (непознат )
Публикувано24.11.05 17:12



1.Затвори делфито.
2.Изтрий DLL- ла който се е компилирал.
3.Провери дали exe- то не ползва DLL- ла от друга директория.
4.Отвори делфито
5.Компилирай DLL- ла и стртирай.



Тема Re: BreakPointнови [re: vido]  
АвторHoвoбpaнeц (Нерегистриран)
Публикувано25.11.05 09:25



Всеки проект е в различна директория и това не мисля че е проблем.
Обясни малко по-подробно, че не виждам логиката.



Тема Re: BreakPointнови [re: Hoвoбpaнeц]  
Автор andrew_nikoloff (bugbuster)
Публикувано25.11.05 09:35



Първо се увери, че програмата ти зарежда dll-а от директорията, в която той се записва от компилатора. След това стартирай приложението си. Когато dll-а бъде зареден отвори Modules прозореца (View -> Debug windows -> Modules или Ctrl+Alt+M). Намери къде е твоя dll - десен бутон на него и Reload Symbol Table. Посочи dll-а в папката, в която е бил компилиран (и зареден оттам). Сега би трябвало да ти спира на breakpoint-ите (освен ако не си го изключил от настройките на ide-то).
Кажи дали е станало, че ако не е да измислим нещо друго
Успех!



Тема Re: BreakPointнови [re: Hoвoбpaнeц]  
Автор vido (непознат )
Публикувано25.11.05 10:27



Обикновено DLL- ите използвани от EXE са в неговата директория.
Или в Sistem32 или в директориите в които се търси и т.н.
Аз си слагам DLL- ите при EXE- то.
Тук не става въпрос каде са файловете на различните проекти.
Те могат да са навсякъде.
Проблема идва от това, че EXE- то е пускано с DLL- а/ите без Delphi.
Може би Win- а да е кеширал файла на DLL- a или Delphi се шашка.
Точно обяснение не мога да дам, но когато рестартираш Delphi, нещата се оправят. За по сигурно изтривам DLL- а/ите и ги компилирам наново.



Тема Re: BreakPointнови [re: vido]  
Автор vido (непознат )
Публикувано25.11.05 10:33



настрой DLL- а да се компилира при EXE- то.

Project > Options... > Directories/Conditionals > Output Directory

Редактирано от vido на 25.11.05 10:34.



Тема Re: BreakPointнови [re: andrew_nikoloff]  
АвторHoвoбpaнeц (Нерегистриран)
Публикувано25.11.05 22:59



НЕ става, къде трябва да видя в настройките на IDE-то да не е изключено?



Тема Re: BreakPointнови [re: Hoвoбpaнeц]  
Автор andrew_nikoloff (bugbuster)
Публикувано28.11.05 09:43



Много щеше да ни помогнеш ако беше дал малко информация за конфигурацията на проекта, директории и т.н., но... Сега ще ти опиша КАК ТРЯБВА да го направиш, а ако не е така...
1) Имаш два проекта. Да ги наречем MyApplication.dpr и MyLibrary.dpr. Те се намират съответно в C:\MyApplication\Source и C:\MyLibrary\Source.
2) Изходните файлове на проектите се генерират в директория C:\MyApplication\exe. Това се определя от настройката Project -> Options -> Directories/Conditionals -> Directories -> Output Directory.
3) В диалога Project -> Options -> Compiler -> Debugging се увери, че всички опции без последната (Use Debug DCUs) са отметнати.
4) Build-ни и двата проекта (за целта най-добре е да си направиш project group, за да не превключваш между две IDE-та или два проекта).
5) Зареди MyLibrary.dpr и установи Run -> Parameters -> Host Application да ти е C:\MyApplication\exe\MyApplication.exe. Сега можеш да си стартираш библиотеката. Стартира се твоето приложение.
5а) Библиотеката ти се зарежда динамично (с LoadLibrary): След зареждането на библиотеката от приложението ти изпълни стъпките, за които ти писах в предния си пост.
5б) Библиотеката се зарежда автоматично: Веднага след стартирането на приложението можеш да пристъпиш към стъпките от предния ми пос.
6) След като си указал валидния файл за symbil table (в случая това е C:\MyApplication\exe\MyLibrary.dll) breakpoint-ите ти от залени (невалидни) трябва да станат червени (валидни) и съответно да спира на тях.

Ако след като направиш всичко точно по този начин дебъгера продължава да не ти спира на точните на прекъсване - седни и опиши много подробно какво правиш или най-добре дай и сорса на проектите ти. В противен случай ще е много трудно да ти кажем къде грешиш.
Успех!



Тема Re: BreakPointнови [re: andrew_nikoloff]  
АвторHoвoбpaнeц (Нерегистриран)
Публикувано30.11.05 14:36



Извинявам се че не съм обяснил добре.
Става въпрос за Делфи 4.В диалога Project -> Options -> Compiler -> Debugging липсва Use Debug DCUs, но както разбирам то не ми и трябва в случая, така че дотук проблеми не трябва да има.
В Modules прозореца на десен бутон върху DLL-a няма Reload Symbol Table, което предполагам, че ще е проблем.
Иначе всичко друго е така като си ми описал в последния ти пост.
Използва се Д4 заради стари проекти.



Тема Re: BreakPointнови [re: Hoвoбpaнeц]  
Автор andrew_nikoloff (bugbuster)
Публикувано01.12.05 09:55



Вече нямам инсталирано Delphi 4, така че не мога да видя как са нещата в него, но трябва да са аналогични. Поразгледай из хелпа няма ли писано нещо по въпроса...




Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.