![]() |
Breakpoint problem
Hab ein problem mit Debugen.
Die Pfade. Ausgabepfad gesetzt nach AnwendungsPfad/APlugin Ausführbare Exe AnwendungsPfad/Example.exe Zwischengeschaltete DLL AnwendungsPfad/BassVis.dll Will ich nun die aimp_vis_demo.dll debugen bekomme ich keine Breakpoints. Wo liegt das Problem ? gruss Emil |
Re: Breakpoint problem
Hallo!
Die DLL Namen sagen mir nichts, wie diese in deinem Programm angesprochen werden ist genauso unklar. Du kennst das Programm/Sources - wir nicht. Wer lädt welche DLL und wie (dynamisch, statisch?) und wer lädt dann wen nach und wie? Sind die Debugsymbole eingeschaltet bei den entpsrechenden DLL Versionen? Liegen noch andere - gleichnamige - DLLs im Suchpfad des Systems oder dem Windows und Windows\System32 Verzeichnis? Entschuldige, aber meine Glaskugel ist mir runtergefallen... |
Re: Breakpoint problem
Zitat:
BassVis über LoadLibrary aimp_vis_demo.dll und gibt die ausgaben zurück an die Exe. (dynamisch) Zitat:
Zitat:
Zitat:
Etwas unglücklich formuliert. gruss Emil |
Re: Breakpoint problem
Also du hast die EXE in Start > Parameter... > Debugger > Host-Anwendung eingetragen und startest den Debugprozess von deiner DLL aus?
vielleicht kommt der Debugger nicht ganz klar, mit einer zwischen DLL, obwohl ich dachte das würde egal sein :gruebel: |
Re: Breakpoint problem
Zitat:
Seltsamerweise geht es mit meiner für Winamp geschrieben DLL Mit der geht es nicht. Wenn ich sie vorher kompiliere dann sind alle eventuellen positionen wo man Breakpoints setzen kann aktiviert (blau) Start ich die DLL mit meiner EXE zum debugen schalten die sich alle aus und ich kann keinen break setzen. gruss Emil |
Re: Breakpoint problem
ist die ImageBase noch frei,
also kann es sein, daß die DLL wo anders im Speicher geladen wird (da der Platz schon belegt ist) und Delphi diese dann einfach nicht mehr findet? |
Re: Breakpoint problem
Zitat:
Die Funktionen gehen alle kann nur nicht debugen. Das ist schlecht bei eventueller Fehler suche. gruss Emil |
Re: Breakpoint problem
->
![]() -> Tutorials und Kurse -> ![]() -> eventuell könnte man auch mal schnell 'nen RamEditor ( ![]() nja, ansonsten wär's wohl garnicht verkehrt, wenn du diese überhaupt erstmal angibst. :stupid: aber nicht böse seien, wenn es nix hilft ... der Fehler kann ja och immernoch wo anders liegen :stupid: |
Re: Breakpoint problem
Hab mal ein Archiv angehängt vielleicht klappt es ja bei dir.
Kannst ja mal testen wenn du zeit und Lust hast. Nebenbei das Plugin ist nix besonderes. habs gelöscht.. gruss Emil |
Re: Breakpoint problem
Liste der Anhänge anzeigen (Anzahl: 1)
Jetzt wo ich's grad runterladen wollte :lol:
Im Anhang mal ein schnell zusammengetippter Prototyp eines Programmes, welches die Images (EXE/DLL) der laufenden Pogramme ausließt und anzeigt. Wenn bei Default IB (default ImageBase) etwas drinsteht, dann wurde die Datei an anderer Stelle geladen. ich bin jetzt sogar etwas geschockt ... nahezu alle Trillian-eigenen DLLs wollen zusammen an der $10000000 geladen werden und in der Ashampoo-FireWall scheinen Delphi/Codegear DLLs verbaut zu sein, ebenso beim HP-Drucker-Zeugs PS: nicht wundern, die Anzeige ist noch sehr "krank", in ihrer Darstellung :stupid: |
Re: Breakpoint problem
Zitat:
Ist schon sehr seltsam das es nicht funktioniert. Wie gesagt an BassVis oder der Exe kann es nicht liegen denn es funktioniert mit meiner vis_BassVis.dll Plugin für Winamp. Danke für das Sample werde es mir mal anschauen. EDIT: Bei deinen Programm liegt die ImageBase auf $00400000 Example,exe BassVis und aimp_vis_demo.Dll auf der DefaultIB $00400000 Die ImageBase ist aber bei beiden unterschiedlich. Aber besser ist du schaust selbst mal nach. Ist etwas zu hoch für mich was dein Programm da genau macht und anzeigt. gruss Emil |
Re: Breakpoint problem
Ich kann mich dunkel erinnern, dass wenn der Sourccode oder die Hostanwendung in einen Pfad mit Leerzeichen liegt oder der Pfad nicht den veralteten 8.3-Regeln gehorcht, dass dann der integrierte Debugger irgendwie die Module nicht richtig laden kann.
Dann werden auch keine Breakpoints in der DLL angezeigt. Man kann dann versuchen das fehlende Modul nochmal zu laden: Ansicht -> Debug-Fenster -> Module rechter Mausklick und Symboltabelle neu laden... Da man das bei jedem neuen Start tun muss ist es besser, gleich darauf zu achten, dass die Pfade der 8.3-Regel entsprechen. Habe diese Erfahrungen unter Delphi 5 gemacht. |
Re: Breakpoint problem
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Denke daran liegt es nicht. gruss Emil |
Re: Breakpoint problem
Hab den Fehler gefunden.
Zitat:
Ich verwende in Bass_Vis GetShortName. Anscheinend kommt der Compiler damit nicht klar. Bei langen Pfad kann ich debugen bei 8.3 nicht. Sehr seltsam das alles. gruss Emil |
Re: Breakpoint problem
hmmm, schon komisch
nja, dennoch kann es nicht schaden, wenn die ImageBases angepaßt werden... am Einfachsten wär es wohl derzeit wenn die beiden DLLs z.B. dahin verschoben werden: Bass_vis.dpr {$IMAGEBASE $00600000} aimp_vis_demo.dpr {$IMAGEBASE $006E0000} einfach in die beiden DPRs nach "library ...;" die Kompileroption eintragen oder in den Projektoptionen (zumindestens in den neueren Delphiverionen) gibt es eigentlich die Möglichkeit die Bass_vis.dll neu zu kompilieren? |
Re: Breakpoint problem
Zitat:
EDIT: Zitat:
Nur welchen vorteil hat das ? gruss Emil |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz