Einzelnen Beitrag anzeigen

Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#1

Debugging rund um ein 3rd-party COM-Objekt

  Alt 12. Okt 2006, 15:40
Hallo zusammen,

momentan steh ich echt vor einem ordentlichen Problem. Ich habe eine Applikation die auf ein 3rd-party COM-Objekt zugreift. Zu diesem COM-Objekt habe ich nur eine relativ magere Doku, die Typelib musste ich mir selbst extrahieren. Die generierte Typelib war dann nicht mal in Delphi kompilierbar, ich bekam bei manchen Funktionen die Fehlermeldung dass Getter und Setter unterschiedliche Datentypen verwenden würden, was unzulässig sei. Das habe ich dann durch Änderungen im PAS-File beheben können, indem ich die fraglichen Variablentypen durch OleVariant ersetzt habe. Nun ist das Problem, dass die Applikation bei mir wunderbar funktioniert (auf dem Entwicklungssystem und einem Testrechner), ich aber von mehreren Usern Rückmeldung bekam, dass die Applikation sich teilweise seltsam verhält, abstürzt oder den Dienst verweigert.

Meine Applikation ist dabei recht codearm und quasi nur ein Frontend zur Bedienung des COM-Objektes, daher bin ich mir ziemlich sicher, dass das Problem irgendwo in der Kommunikation mit dem COM-Objekt liegen muss. Erratisches Verhalten ist ziemlich häufig ein Signal dafür, dass auf dem Stack oder Heap nicht alles mit rechten Dingen zugeht.

Meine Frage dazu wäre nun, kann ich irgendwie quasi live Sachen wie Stackpointer vor und nach COM-Aufruf usw. protokollieren um zu sehen ob es da irgendwelche Probleme gibt? Gibt es Diagnoseunits oder ähnliches was mir hier helfen könnte? Ich kanns natürlich auch per Hand in Softice oder WinDbg Schritt für Schritt debuggen, aber der Zeitaufwand erscheint mir da deutlich höher.

Ich hab schon etwas rumgegoogled, aber nichts wirklich hilfreiches gefunden, daher frage ich jetzt einfach mal rum ob schon jemand in dem Bereich mal experimentiert hat

Evtl. liegt es ja auch an meinen Änderungen in der Typelib, ich kann bei Bedarf Original und meine Version zur Verfügung stellen. Nach meinem Wissensstand müssten die Änderungen aber alle korrekt sein. (Ja, ich weiss dass ich nichts weiss)

Für jegliche Tipps, Pointer, Hinweise usw. bin ich herzlich dankbar!
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat