UnhandledException in managed dll werkt niet.

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • ZaZ
  • Registratie: Oktober 2002
  • Laatst online: 00:06

ZaZ

Tweakers abonnee

Topicstarter
Ik heb een managed dll die aangeroepen moet worden door andere hosts.
Nu wil ik dat het een en ander gelogged wordt als het echt misgaat (stackdump)
Als ik een UnhandledException handler toevoeg gaat met een managed host alles goed, maar vanuit een unmanaged host lijkt ie het gewoon te negeren en wordt de exception naar een COM error gemarshalled zonder langs de custom handler te gaan in de dll.

Ik zoek me rot maar kan erg weinig vinden. Zijn hier mensen die hier meer van weten?

Lekker op de bank


Acties:
  • 0 Henk 'm!

  • ZaZ
  • Registratie: Oktober 2002
  • Laatst online: 00:06

ZaZ

Tweakers abonnee

Topicstarter
bump

Lekker op de bank


Acties:
  • 0 Henk 'm!

  • creator1988
  • Registratie: Januari 2007
  • Laatst online: 25-09 20:02
Volgens mij gaat dit alleen werken als je in je entrypoint van je DLL [StaThread] er boven gooit.

Waar heb je je UnhandledException handler op hangen? Hij moet op
C#:
1
AppDomain.CurrentDomain.UnhandledException
en niet op Thread.CurrentThread etc.

[ Voor 46% gewijzigd door creator1988 op 10-12-2010 11:59 ]


Acties:
  • 0 Henk 'm!

  • ZaZ
  • Registratie: Oktober 2002
  • Laatst online: 00:06

ZaZ

Tweakers abonnee

Topicstarter
Ik heb 'm inderdaad op AppDomain.CurrentDomain.UnhandledException

Lekker op de bank


Acties:
  • 0 Henk 'm!

  • creator1988
  • Registratie: Januari 2007
  • Laatst online: 25-09 20:02
Kan je eens proberen [STAThread] op je main entry point te zetten?

Acties:
  • 0 Henk 'm!

  • ZaZ
  • Registratie: Oktober 2002
  • Laatst online: 00:06

ZaZ

Tweakers abonnee

Topicstarter
Helaas, geen resultaat.

Lekker op de bank


Acties:
  • 0 Henk 'm!

  • ZaZ
  • Registratie: Oktober 2002
  • Laatst online: 00:06

ZaZ

Tweakers abonnee

Topicstarter
Even de situatie schetsen, misschien dat ik het wel verkeerd zoek.
De library heeft zelf niet de verantwoordelijkheid te loggen, maar dat moet een client doen.
Probleem is dat als een client via COM de lib aanspreekt en daar een fout plaatsvindt, dat ie dan alleen de gemarshallde errorcode terugkrijgt. (standaardgedrag)

In dotnet is het exception object nou juist zo handig omdat er lekker veel informatie instaat en helemaal met een debug build.
Nu had ik het plan om in het geval van een unhandled exception het exception object te exposen voor de clients zodat die nog uitgelezen kan worden.

Is allemaal geen rocketscience en werkt prima mits ik er 1 grote try/catch omheen zet die in het geval van een unhandled exception het exception object exposed.
Dus ik dacht aan een unhandled exception handler. Getest en allemaal werken enzo, tot het moment dat er dus een unmanaged client gebruik maakt van de lib.
Sta al bijna op het punt om iets in het build process op te nemen die de source verbouwt door er try catch blokken omheen te zetten, maar dat soort ranzigheden ga ik liever uit de weg natuurlijk.

Lekker op de bank

Pagina: 1