Laden...

Ursache für Erscheinen von Windows Problemberichtsenden fenster finden :/

Erstellt von Da_Flo vor 14 Jahren Letzter Beitrag vor 14 Jahren 4.127 Views
D
Da_Flo Themenstarter:in
269 Beiträge seit 2009
vor 14 Jahren
Ursache für Erscheinen von Windows Problemberichtsenden fenster finden :/

Hallo, bei meinem programm kommt immer(aber leider nie zum selben zeitpunkt 😕) ein fenster von windows ob ich problembericht senden will oder nicht, und dabei stürzt das programm ab. Das tolle an so nen fehler ist natürlich das ich keine ahnung hab wodurch dieser fehler ausgelöst wird.

gibt es irgendwelche fehlerquellen durch die so ein fenster ausgelöst wird?
bzw wird so ein fehler, der ja anscheinend keine Exception ist weil keine beschreibung des fehlers etc ausgegeben wird, von einem try-catch block abgefangen?.....weil in meinem code gibt es nun kaum einen teil der nicht von einem try block umschlungen ist.....

Danke

Flo

C
116 Beiträge seit 2004
vor 14 Jahren

Benutzt du irgendwelche nicht standardmäßigen Komponenten? Ich hatte das Problem mal als ich vergessen hatte eine zusätzliche DLL mitzugeben, was z.B. Windows Seven nur mit einem nichts sagendem Fehlerbericht quittiert hatte.

D
Da_Flo Themenstarter:in
269 Beiträge seit 2009
vor 14 Jahren

das "Problem" ist das dieser fehler nicht immer auftaucht sondern wies ihm passt. An ner dll kann es meines erachtens nicht liegen, das einzige wass ich verwende ausgenommen von GUIElementen ist Datenbankverbindung und Socketverbindung

C
116 Beiträge seit 2004
vor 14 Jahren

Hast du mal in der Ereignisanzeige von Windows nachgeschaut? Vielleicht wurde der Fehler dort registriert.

U
1.688 Beiträge seit 2007
vor 14 Jahren

Hallo,

schau mal im Ereignislog, da sollten sich mehr Informationen finden.
Und, ja, es liegt an einer Exception, die Du (meist) fangen kannst.

Installier Dir mal die "Debugging Tools für Windows" und starte Dein Programm aus WinDbg - das sagt Dir gleich, was und wo es passiert.

D
Da_Flo Themenstarter:in
269 Beiträge seit 2009
vor 14 Jahren

danke, den hab ich mir jez installiert!


ModLoad: 719b0000 719f0000   C:\WINDOWS\system32\mswsock.dll
ModLoad: 66710000 66769000   C:\WINDOWS\system32\hnetcfg.dll
ModLoad: 719f0000 719f8000   C:\WINDOWS\System32\wshtcpip.dll
(b5c.f38): CLR exception - code e0434f4d (first chance)
(b5c.f38): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
eax=00000001 ebx=00000007 ecx=00000000 edx=0012efcc esi=0156f7e4 edi=790dfef8
eip=01037361 esp=0012efcc ebp=0012f028 iopl=0         nv up ei pl nz na po nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00010202
<Unloaded_ion.dll>+0x1037360:
01037361 8b01            mov     eax,dword ptr [ecx]  ds:0023:00000000=????????
0:000> g

hat jez zwar nichts mit dem fehler zu tun den ich suche....aber ich wollte mal wissn wie ich da was raus lesen kann wo der fehler aufgetreten ist?
da is ja anscheinend schon ne exception geworfen worden....

D
Da_Flo Themenstarter:in
269 Beiträge seit 2009
vor 14 Jahren

im ereignissprotokoll steht folgendes:

Ereignistyp:	Fehler
Ereignisquelle:	.NET Runtime 2.0 Error Reporting
Ereigniskategorie:	Keine
Ereigniskennung:	5000
Datum:		14.08.2009
Zeit:		11:07:19
Benutzer:		Nicht zutreffend
Computer:	SBALA
Beschreibung:
EventType clr20r3, P1 datamanager.exe, P2 1.0.0.0, P3 4a83b5ae, P4 system.data, P5 2.0.0.0, P6 471ebf27, P7 246d, P8 2c, P9 system.data.sqlclient.sql, P10 NIL.

Weitere Informationen über die Hilfe- und Supportdienste erhalten Sie unter http://go.microsoft.com/fwlink/events.asp.
Daten:
0000: 63 00 6c 00 72 00 32 00   c.l.r.2.
0008: 30 00 72 00 33 00 2c 00   0.r.3.,.
0010: 20 00 64 00 61 00 74 00    .d.a.t.
0018: 61 00 6d 00 61 00 6e 00   a.m.a.n.
0020: 61 00 67 00 65 00 72 00   a.g.e.r.
0028: 2e 00 65 00 78 00 65 00   ..e.x.e.
0030: 2c 00 20 00 31 00 2e 00   ,. .1...
0038: 30 00 2e 00 30 00 2e 00   0...0...
0040: 30 00 2c 00 20 00 34 00   0.,. .4.
0048: 61 00 38 00 33 00 62 00   a.8.3.b.
0050: 35 00 61 00 65 00 2c 00   5.a.e.,.
0058: 20 00 73 00 79 00 73 00    .s.y.s.
0060: 74 00 65 00 6d 00 2e 00   t.e.m...
0068: 64 00 61 00 74 00 61 00   d.a.t.a.
0070: 2c 00 20 00 32 00 2e 00   ,. .2...
0078: 30 00 2e 00 30 00 2e 00   0...0...
0080: 30 00 2c 00 20 00 34 00   0.,. .4.
0088: 37 00 31 00 65 00 62 00   7.1.e.b.
0090: 66 00 32 00 37 00 2c 00   f.2.7.,.
0098: 20 00 32 00 34 00 36 00    .2.4.6.
00a0: 64 00 2c 00 20 00 32 00   d.,. .2.
00a8: 63 00 2c 00 20 00 73 00   c.,. .s.
00b0: 79 00 73 00 74 00 65 00   y.s.t.e.
00b8: 6d 00 2e 00 64 00 61 00   m...d.a.
00c0: 74 00 61 00 2e 00 73 00   t.a...s.
00c8: 71 00 6c 00 63 00 6c 00   q.l.c.l.
00d0: 69 00 65 00 6e 00 74 00   i.e.n.t.
00d8: 2e 00 73 00 71 00 6c 00   ..s.q.l.
00e0: 20 00 4e 00 49 00 4c 00    .N.I.L.
00e8: 0d 00 0a 00               ....    

ich kann da leider wenig herauslesen, könnt ihr mir helfen?

D
Da_Flo Themenstarter:in
269 Beiträge seit 2009
vor 14 Jahren

Weis wirklich keiner wodurch dieser fehler auftreten kann?
das einzige was ich herauslesen kann ist das es irgendwas mit der Datenbank anbindung zu tun hat, aber ich verstehe nicht wieso da nicht ne normale exception kommt!

5.742 Beiträge seit 2007
vor 14 Jahren

Hallo Da_Flo,

kannst du nicht auf "Debuggen" klicken, wen die Aufforderung zum Senden eines Fehlerberichtes erscheint?

Versuche mal, schrittweise durch Auskommentieren und Entfernen von Verweisen das Programm lauffähig zu machen - so kannst du den Fehler besser orten.

D
Da_Flo Themenstarter:in
269 Beiträge seit 2009
vor 14 Jahren

das problem ist ja das es nicht sagen kann "wenn ich das und das mache kommt der Fehler", er kommt immer, aber nicht zum selben zeitpunkt.

d.h es ist relativ schwer für mich die Fehlerursache noch mehr einzugrenzen.

gibt es keine möglichkeite diee "Exception" abzufangen damit ich ne zeilennummer bekomme im stacktrace wo das problem liegt?

J
152 Beiträge seit 2009
vor 14 Jahren

Hallo Da_Flo,

registriere doch mal die Event-Handler
-AppDomain.CurrentDomain.UnhandledException
-Application.ThreadException

Vielleicht kannst du dort den Absturzgrund mitloggen.

Evtl. hast du aber auch irgendwo einen 'Deadlock', dass endet meistens auch mit dem von dir beschriebenen Fehler.

Ursache hierfür sind häufig fehlerhafte while-Schleifen

Gruß Jörg

U
1.688 Beiträge seit 2007
vor 14 Jahren

Evtl. hast du aber auch irgendwo einen 'Deadlock', dass endet meistens auch mit dem von dir beschriebenen Fehler.

Nö - ich schenke mir aber eine eigene Erklärung mit Verweis auf die Wikipedia:
http://de.wikipedia.org/wiki/Deadlock

Ursache hierfür sind häufig fehlerhafte while-Schleifen

Auch das ist leider, besonders in Verbindung mit "häufig" nicht richtig.

2.223 Beiträge seit 2005
vor 14 Jahren

Hallo Da_Flo,

eine Sache die du versuchen könntest, in der Programm.cs die

Application.ThreadException

zu abonnieren und erst einmal eine

MessageBox.Show(string.Format("{0}\n{1}", e.Exception, e.Exception.StackTrace));

auszugeben

Herzliche Grüße
BlackCoin

1.044 Beiträge seit 2008
vor 14 Jahren

Hallo Da_Flo,

mov     eax,dword ptr [ecx]  ds:0023:00000000=????????

Es scheint so, als ob es eine Access Violation ist, da der Wert von EAX ist 1 ist und somit auf eine Adresse zeigt, die es im DS-Register "nicht gibt". So weit ich weiß, muss es eine Adresse sein, die größer als die ImageBase(meinst 0x400000) ist. In .NET sollte so etwas eigentlich nicht vorkommen(abgesehen von unsicheren Code). Ich vermute mal, dass das aus aus einer unmanaged DLL kommt.

Falls diese Fehler aus eine unmanaged DLL stammt, bleibt dir wohl nich anderes übrig, als manuell im Debugger(z.B. OllyDbg oder WinDbg) nach dem Fehler zu suchen.

Ursache hierfür sind häufig fehlerhafte while-Schleifen

Zur Erinnerung: Das ist dann kein Deadlock, sondern eine Endlosschleife, die schlimmstenfalls einen Überlauf im Stack führt.

zero_x

P.S.: Vielleicht liegt es auch an der calling convention?

D
Da_Flo Themenstarter:in
269 Beiträge seit 2009
vor 14 Jahren

bin leider noch immer nicht auf die ursache des Fehlers gekommen.
Ich kann soweit sagen. wenn ich das programm aus dem VisualStudio herausstarte, dan henkt es sich nach einiger zeit auf. und wenn ich es "normal" starte. dann kommt die Windows fehlermeldung. Ich gehe mal davon aus, das es sich hier um den selben fehler handelt, der halt sich den umständen entsprechend verschieden zeigt(debugging und normal starten)....

Müsste er im debbuging mode nicht auf die Zeile hüpfen wenn z.b irgendwo ne Endlosschleife ist? das hab ich nämlich sonst noch nie erlebt das im debug modus mein programm vollkommen abstürzt oder hengen bleibt.