EXE funktioniert nicht mehr - MS-Fehlermeldung
Moderator: Moderatoren
EXE funktioniert nicht mehr - MS-Fehlermeldung
Hallo
Habe seit ca. 1/2 Jahr ein Problem und komme der Sache nicht auf die Spur.
Hier die Fehlermeldungen von Windows 10 Prof.:
LINK entfernt, nach Löschantrag laut DSGVO
Sachlage:
- Wenn das Programm geschlossen wird (quit) kommen manchmal die gezeigten Fehlermeldungen.
- Das Hybrid-Fenster wird noch angezeigt, das XbpCrt-Objekt ist also noch da.
- Der Fehler kommt mal selten mal häufiger vor.
- Der Fehler lässt sich nicht Reproduzieren.
- Der Fehler passiert bei mir wie bei Kunden - aber scheinbar nicht auf allen Arbeitsplätzen.
- Windows 10 Prof. aktueller Update-Stand, im Netzwerk mit Server 2003, 2008, 2012.
- Xbase++ v.2.0 jeweils aktueller Stand.
- Es wird keinerlei Error-Protokoll geschrieben.
- Mein mitgeschriebenes "Shutdown-Protokoll" zeigt dass das Programm theoretisch komplett runterfährt. (Zumindest soweit ich das mit Xbase++-Möglichkeiten protokollieren kann.)
- "Exit Procedure" und "AppExit" werden sauber durchlaufen.
- klickt man schlussendlich auf "Programm schließen" ist die Exe (und das eingefrorene Fenster) weg.
Meine bisherigen Vermutungen:
a) schlafende Threads blockieren das Beenden (sleep())
b) meine DLLs passen nicht mehr zusammen und machen beim entladen Probleme.
Hatte schon jemand so ein Problem?
Habe seit ca. 1/2 Jahr ein Problem und komme der Sache nicht auf die Spur.
Hier die Fehlermeldungen von Windows 10 Prof.:
LINK entfernt, nach Löschantrag laut DSGVO
Sachlage:
- Wenn das Programm geschlossen wird (quit) kommen manchmal die gezeigten Fehlermeldungen.
- Das Hybrid-Fenster wird noch angezeigt, das XbpCrt-Objekt ist also noch da.
- Der Fehler kommt mal selten mal häufiger vor.
- Der Fehler lässt sich nicht Reproduzieren.
- Der Fehler passiert bei mir wie bei Kunden - aber scheinbar nicht auf allen Arbeitsplätzen.
- Windows 10 Prof. aktueller Update-Stand, im Netzwerk mit Server 2003, 2008, 2012.
- Xbase++ v.2.0 jeweils aktueller Stand.
- Es wird keinerlei Error-Protokoll geschrieben.
- Mein mitgeschriebenes "Shutdown-Protokoll" zeigt dass das Programm theoretisch komplett runterfährt. (Zumindest soweit ich das mit Xbase++-Möglichkeiten protokollieren kann.)
- "Exit Procedure" und "AppExit" werden sauber durchlaufen.
- klickt man schlussendlich auf "Programm schließen" ist die Exe (und das eingefrorene Fenster) weg.
Meine bisherigen Vermutungen:
a) schlafende Threads blockieren das Beenden (sleep())
b) meine DLLs passen nicht mehr zusammen und machen beim entladen Probleme.
Hatte schon jemand so ein Problem?
Zuletzt geändert von brandelh am Mo, 11. Jun 2018 9:22, insgesamt 1-mal geändert.
Grund: LINK entfernt, nach Löschantrag laut DSGVO
Grund: LINK entfernt, nach Löschantrag laut DSGVO
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: EXE funktioniert nicht mehr - MS-Fehlermeldung
hi,
eine App die am Ende abstürzt ... das kenne ich irgendwie
Frage : wo liegt die EXE ?
im 5th Element steht dann "thread" oder NIL
was externe 3-PP Software angeht ist dann die Frage was du da so verwendest.
... und dann wäre da noch die Frage ob es mit Xbase++ v1.9.355 die selben Fehler gibt ?
eine App die am Ende abstürzt ... das kenne ich irgendwie
Frage : wo liegt die EXE ?
aber wie sieht es mit dem Windows Logfile aus ?DelUser01 hat geschrieben:- Es wird keinerlei Error-Protokoll geschrieben.
was Thread angeht könntest du es ja prüfenDelUser01 hat geschrieben:Meine bisherigen Vermutungen:
a) schlafende Threads blockieren das Beenden (sleep())
b) meine DLLs passen nicht mehr zusammen und machen beim entladen Probleme.
Code: Alles auswählen
aInfo := ThreadInfo( THREADINFO_TID + ;
THREADINFO_SYSTHND + ;
THREADINFO_FUNCINFO + ;
THREADINFO_TOBJ )
was externe 3-PP Software angeht ist dann die Frage was du da so verwendest.
... und dann wäre da noch die Frage ob es mit Xbase++ v1.9.355 die selben Fehler gibt ?
gruss by OHR
Jimmy
Jimmy
Re: EXE funktioniert nicht mehr - MS-Fehlermeldung
Hallo Jimmy
Hauptdaten (DBF und NTX) liegen auf den Netzwerklaufwerken.
Manchmal sind "schlafende" Threads noch nicht beendet.
EXE, DLL usw. liegen alle auf C: - auch alle Temp-DBFs.AUGE_OHR hat geschrieben:Frage : wo liegt die EXE ?
Hauptdaten (DBF und NTX) liegen auf den Netzwerklaufwerken.
hatte ich bisher vergessen zu prüfenAUGE_OHR hat geschrieben:aber wie sieht es mit dem Windows Logfile aus ?
Schreibe ich in mein Protokoll.AUGE_OHR hat geschrieben:ThreadInfo(...)
Manchmal sind "schlafende" Threads noch nicht beendet.
habe einige eingebundenAUGE_OHR hat geschrieben:3-PP...
kann ich nichtmehr überprüfen, alles schon länger auf v2 umgestellt...AUGE_OHR hat geschrieben:ob es mit Xbase++ v1.9.355 die selben Fehler gibt ?
Re: EXE funktioniert nicht mehr - MS-Fehlermeldung
WICHTIGER NACHTRAG:
Auf meinem PC ist ungefähr im gleichen Zeitraum das selbe Problem beim Schließen des Windows Internet Explorers passiert. Aber äuserst selten.
Auf meinem PC ist ungefähr im gleichen Zeitraum das selbe Problem beim Schließen des Windows Internet Explorers passiert. Aber äuserst selten.
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: EXE funktioniert nicht mehr - MS-Fehlermeldung
hm ... die aufgeführten Ursachen sind ähnlichDelUser01 hat geschrieben:... das selbe Problem beim Schließen des Windows Internet Explorers passiert.
https://support.microsoft.com/de-de/hel ... ed-working
Dieses Problem kann eine der folgenden Ursachen haben:
Sie verwenden möglicherweise einen veralteten oder beschädigten Grafiktreiber
Systemdateien auf Ihrem PC sind möglicherweise beschädigt oder passen mit anderen Dateien nicht zusammen
Ihr PC ist möglicherweise durch ein Virus oder andere Malware infiziert
Einige Anwendungen oder Dienste, die auf Ihrem PC ausgeführt werden, können verursachen, dass Windows Explorer nicht mehr reagiert.
gruss by OHR
Jimmy
Jimmy
Re: EXE funktioniert nicht mehr - MS-Fehlermeldung
Hallo Jimmy
in dem Zitierten Artikel geht es um den Windows Explorer nicht um den Windows Internet Explorer 11 (Browser) der bei mir hängen geblieben ist.AUGE_OHR hat geschrieben:https://support.microsoft.com/de-de/hel ... ed-working
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: EXE funktioniert nicht mehr - MS-Fehlermeldung
uuups ... zu IE kann ich nichts sagen ... ich nutze FF.DelUser01 hat geschrieben:in dem Zitierten Artikel geht es um den Windows Explorer nicht um den Windows Internet Explorer 11 (Browser) der bei mir hängen geblieben ist.
hat da überprüfen der Threads was ergeben ?
wie sieht es den mit 3-PP Libs oder DLL / ActiveX aus ... ist da vielleicht noch was "offen"
s.h. auch http://www.xbaseforum.de/viewtopic.php?f=16&t=9613
gruss by OHR
Jimmy
Jimmy
Re: EXE funktioniert nicht mehr - MS-Fehlermeldung
Hallo
hier die Microsoft-Fehlermeldungen aus der Ereignisanzeige von einem der letzten Abstürze. Es sind vier Einträge nacheinander zu finden. Vielleicht kann jemand damit etwas anfangen:
Ergänzung: Es sind also zwei Abstürze direkt hinterienander
1)
2)
3)
4)
hier die Microsoft-Fehlermeldungen aus der Ereignisanzeige von einem der letzten Abstürze. Es sind vier Einträge nacheinander zu finden. Vielleicht kann jemand damit etwas anfangen:
Ergänzung: Es sind also zwei Abstürze direkt hinterienander
1)
Code: Alles auswählen
Ebene: Fehler
Datum und Uhrzeit: 07.02.2017 11:34:54
Quelle: Application Error
Ereignis-ID / EventID: 1000
Level: 2
Task: 100
Name der fehlerhaften Anwendung: Gsg1.exe, Version: 0.0.0.0, Zeitstempel: 0x5897825a
Name des fehlerhaften Moduls: unknown, Version: 0.0.0.0, Zeitstempel: 0x00000000
Ausnahmecode: 0xc0000005
Fehleroffset: 0x00000000
ID des fehlerhaften Prozesses: 0xe20
Startzeit der fehlerhaften Anwendung: 0x01d28127debf73ad
Pfad der fehlerhaften Anwendung: C:\gs\Gsg1.exe
Pfad des fehlerhaften Moduls: unknown
Berichtskennung: 90c5d324-79a1-4ec8-9273-77a0b9e8bd79
Vollständiger Name des fehlerhaften Pakets:
Anwendungs-ID, die relativ zum fehlerhaften Paket ist:
Code: Alles auswählen
Ebene: Information
Datum und Uhrzeit: 07.02.2017 11:35:04
Quelle: Windows Error Reporting
Ereignis-ID / EventID: 1001
Level: 4
Task: 0
Fehlerbucket 108728494506, Typ 1
Ereignisname: APPCRASH
Antwort: Nicht verfügbar
CAB-Datei-ID: 107921496001
Problemsignatur:
P1: Gsg1.exe
P2: 0.0.0.0
P3: 5897825a
P4: StackHash_594a
P5: 0.0.0.0
P6: 00000000
P7: c0000005
P8: PCH_FB_FROM_ntdll+0x0006EB8C
P9:
P10:
Angefügte Dateien:
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER3A72.tmp.WERInternalMetadata.xml
\\?\c:\temp\WER462A.tmp.csv
\\?\c:\temp\WER463B.tmp.txt
\\?\C:\temp\WER463B.tmp.appcompat.txt
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER4D60.tmp.dmp
\\?\C:\temp\WER51F5.tmp.WERDataCollectionFailure.txt
Diese Dateien befinden sich möglicherweise hier:
C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_Gsg1.exe_15c9aaf273c9266738f941e4db0a191f57d2f3_9e955b2c_cab_89ff6088
Analysesymbol:
Es wird erneut nach einer Lösung gesucht: 0
Berichts-ID: 90c5d324-79a1-4ec8-9273-77a0b9e8bd79
Berichtstatus: 8
Bucket mit Hash: f0c7f8b4ede87c5b415f4a910b98e72c
Code: Alles auswählen
Ebene: Fehler
Daum und Uhrzeit: 07.02.2017 11:35:04
Quelle: Application Error
Ereignis-ID / EventID: 1000
Level: 2
Task: 100
Name der fehlerhaften Anwendung: Gsg1.exe, Version: 0.0.0.0, Zeitstempel: 0x5897825a
Name des fehlerhaften Moduls: unknown, Version: 0.0.0.0, Zeitstempel: 0x00000000
Ausnahmecode: 0xc000041d
Fehleroffset: 0x65d8d4a1
ID des fehlerhaften Prozesses: 0xe20
Startzeit der fehlerhaften Anwendung: 0x01d28127debf73ad
Pfad der fehlerhaften Anwendung: C:\gs\Gsg1.exe
Pfad des fehlerhaften Moduls: unknown
Berichtskennung: b15f046f-1e5c-4b89-8b76-2d73352ee851
Vollständiger Name des fehlerhaften Pakets:
Anwendungs-ID, die relativ zum fehlerhaften Paket ist:
Code: Alles auswählen
Ebene: Information
Daum und Uhrzeit: 07.02.2017 11:35:24
Quelle: Windows Error Reporting
Ereignis-ID / EventID: 1001
Level: 4
Task: 0
Fehlerbucket 108728494737, Typ 1
Ereignisname: APPCRASH
Antwort: Nicht verfügbar
CAB-Datei-ID: 0
Problemsignatur:
P1: Gsg1.exe
P2: 0.0.0.0
P3: 5897825a
P4: StackHash_d760
P5: 0.0.0.0
P6: 00000000
P7: c000041d
P8: PCH_03_FROM_XPPRT1+0x000967F6
P9:
P10:
Angefügte Dateien:
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER6134.tmp.WERInternalMetadata.xml
Diese Dateien befinden sich möglicherweise hier:
C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_Gsg1.exe_f2449894fc85e3d4a16e2406fd558ea1f75db5f_9e955b2c_b383ae3b
Analysesymbol:
Es wird erneut nach einer Lösung gesucht: 0
Berichts-ID: b15f046f-1e5c-4b89-8b76-2d73352ee851
Berichtstatus: 0
Bucket mit Hash: 6b2a1fe2455e6ab8b58ba1866ec9c812
Zuletzt geändert von DelUser01 am Di, 07. Feb 2017 13:59, insgesamt 1-mal geändert.
Re: EXE funktioniert nicht mehr - MS-Fehlermeldung
Und hier noch die dazugehörigen Reports:
zu 1 + 2)
c:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_Gsg1.exe_15c9aaf273c9266738f941e4db0a191f57d2f3_9e955b2c_cab_89ff6088\Report.wer
zu 3 + 4)
c:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_Gsg1.exe_f2449894fc85e3d4a16e2406fd558ea1f75db5f_9e955b2c_b383ae3b\Report.wer
zu 1 + 2)
c:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_Gsg1.exe_15c9aaf273c9266738f941e4db0a191f57d2f3_9e955b2c_cab_89ff6088\Report.wer
Code: Alles auswählen
Version=1
EventType=APPCRASH
EventTime=131309372947950128
ReportType=2
Consent=1
UploadTime=131309372949981877
ReportIdentifier=0fd29f4a-ed21-11e6-9c24-38d54712d899
IntegratorReportIdentifier=90c5d324-79a1-4ec8-9273-77a0b9e8bd79
WOW64=1
NsAppName=Gsg1.exe
AppSessionGuid=00000e20-0015-0024-ad73-bfde2781d201
TargetAppId=W:0000da39a3ee5e6b4b0d3255bfef95601890afd80709!0000da39a3ee5e6b4b0d3255bfef95601890afd80709!GSG1.EXE
TargetAppVer=2017//02//05:19:51:54!0!GSG1.EXE
BootId=4294967295
Response.BucketId=f0c7f8b4ede87c5b415f4a910b98e72c
Response.BucketTable=1
Response.LegacyBucketId=108728494506
Response.type=4
Response.CabId=107921496001
Sig[0].Name=Anwendungsname
Sig[0].Value=Gsg1.exe
Sig[1].Name=Anwendungsversion
Sig[1].Value=0.0.0.0
Sig[2].Name=Anwendungszeitstempel
Sig[2].Value=5897825a
Sig[3].Name=Fehlermodulname
Sig[3].Value=StackHash_594a
Sig[4].Name=Fehlermodulversion
Sig[4].Value=0.0.0.0
Sig[5].Name=Fehlermodulzeitstempel
Sig[5].Value=00000000
Sig[6].Name=Ausnahmecode
Sig[6].Value=c0000005
Sig[7].Name=Ausnahmeoffset
Sig[7].Value=PCH_FB_FROM_ntdll+0x0006EB8C
DynamicSig[1].Name=Betriebsystemversion
DynamicSig[1].Value=10.0.14393.2.0.0.256.48
DynamicSig[2].Name=Gebietsschema-ID
DynamicSig[2].Value=1031
DynamicSig[22].Name=Zusatzinformation 1
DynamicSig[22].Value=594a
DynamicSig[23].Name=Zusatzinformation 2
DynamicSig[23].Value=594a174843473be50fd5e27f1c647890
DynamicSig[24].Name=Zusatzinformation 3
DynamicSig[24].Value=7898
DynamicSig[25].Name=Zusatzinformation 4
DynamicSig[25].Value=7898310f4d31e1a0eb5c07d4ce09ba4c
UI[2]=C:\gs\Gsg1.exe
UI[3]=Gsg1.exe funktioniert nicht mehr
UI[4]=Windows kann online nach einer Lösung für das Problem suchen.
UI[5]=Online nach einer Lösung suchen und das Programm schließen
UI[6]=Später online nach einer Lösung suchen und das Programm schließen
UI[7]=Programm schließen
LoadedModule[0]=C:\gs\Gsg1.exe
LoadedModule[1]=C:\WINDOWS\SYSTEM32\ntdll.dll
LoadedModule[2]=C:\WINDOWS\System32\KERNEL32.DLL
LoadedModule[3]=C:\WINDOWS\System32\KERNELBASE.dll
LoadedModule[4]=C:\gs\GSG1D.dll
LoadedModule[5]=C:\gs\GSLIB1A.dll
LoadedModule[6]=C:\gs\GSLIB1B.dll
LoadedModule[7]=C:\gs\XPPRT1.dll
LoadedModule[8]=C:\gs\xppsys.dll
LoadedModule[9]=C:\gs\XPPDBGC.dll
LoadedModule[10]=C:\WINDOWS\System32\ADVAPI32.dll
LoadedModule[11]=C:\WINDOWS\System32\msvcrt.dll
LoadedModule[12]=C:\WINDOWS\System32\sechost.dll
LoadedModule[13]=C:\WINDOWS\System32\RPCRT4.dll
LoadedModule[14]=C:\WINDOWS\System32\SspiCli.dll
LoadedModule[15]=C:\WINDOWS\System32\CRYPTBASE.dll
LoadedModule[16]=C:\WINDOWS\System32\bcryptPrimitives.dll
LoadedModule[17]=C:\WINDOWS\System32\CRYPT32.dll
LoadedModule[18]=C:\WINDOWS\System32\ucrtbase.dll
LoadedModule[19]=C:\WINDOWS\System32\MSASN1.dll
LoadedModule[20]=C:\WINDOWS\System32\GDI32.dll
LoadedModule[21]=C:\WINDOWS\System32\gdi32full.dll
LoadedModule[22]=C:\WINDOWS\System32\USER32.dll
LoadedModule[23]=C:\WINDOWS\System32\win32u.dll
LoadedModule[24]=C:\WINDOWS\System32\WS2_32.dll
LoadedModule[25]=C:\gs\GSLIB1C.dll
LoadedModule[26]=C:\gs\ot4xb.dll
LoadedModule[27]=C:\gs\adsutil.dll
LoadedModule[28]=C:\gs\ASCOM10.dll
LoadedModule[29]=C:\gs\ASInet10.dll
LoadedModule[30]=C:\gs\bap.dll
LoadedModule[31]=C:\WINDOWS\System32\ole32.dll
LoadedModule[32]=C:\WINDOWS\System32\combase.dll
LoadedModule[33]=C:\WINDOWS\System32\OLEAUT32.dll
LoadedModule[34]=C:\WINDOWS\System32\msvcp_win.dll
LoadedModule[35]=C:\WINDOWS\System32\SHLWAPI.dll
LoadedModule[36]=C:\gs\GSG1B.dll
LoadedModule[37]=C:\gs\GSG1C.dll
LoadedModule[38]=C:\gs\GSLIB2A.dll
LoadedModule[39]=C:\gs\GSR4.dll
LoadedModule[40]=C:\gs\XBTBase1.dll
LoadedModule[41]=C:\gs\XBTBase2.dll
LoadedModule[42]=C:\gs\XbZLib.dll
LoadedModule[43]=C:\gs\XPPUI2.dll
LoadedModule[44]=C:\gs\XPPDUI.dll
LoadedModule[45]=C:\gs\ADAC20B.dll
LoadedModule[46]=C:\gs\GSLIB1D.dll
LoadedModule[47]=C:\gs\GSG1A.dll
LoadedModule[48]=C:\gs\XbFTP.dll
LoadedModule[49]=C:\gs\ASRDBC10.dll
LoadedModule[50]=C:\WINDOWS\SYSTEM32\MPR.dll
LoadedModule[51]=C:\WINDOWS\SYSTEM32\VERSION.dll
LoadedModule[52]=C:\WINDOWS\SYSTEM32\WINSPOOL.DRV
LoadedModule[53]=C:\gs\XPPUI1.dll
LoadedModule[54]=C:\gs\XppNat.dll
LoadedModule[55]=C:\gs\som.dll
LoadedModule[56]=C:\gs\WS1LIB1.dll
LoadedModule[57]=C:\gs\XPPPDF51.dll
LoadedModule[58]=C:\WINDOWS\System32\SHELL32.dll
LoadedModule[59]=C:\WINDOWS\System32\cfgmgr32.dll
LoadedModule[60]=C:\WINDOWS\System32\windows.storage.dll
LoadedModule[61]=C:\WINDOWS\System32\powrprof.dll
LoadedModule[62]=C:\WINDOWS\System32\kernel.appcore.dll
LoadedModule[63]=C:\WINDOWS\System32\shcore.dll
LoadedModule[64]=C:\WINDOWS\System32\profapi.dll
LoadedModule[65]=C:\WINDOWS\System32\comdlg32.dll
LoadedModule[66]=C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.14393.447_none_5507ded2cb4f7f4c\COMCTL32.dll
LoadedModule[67]=C:\gs\ASCOM10C.dll
LoadedModule[68]=C:\gs\GSC3.dll
LoadedModule[69]=C:\gs\Xb2NET.dll
LoadedModule[70]=C:\gs\ADAC20C.dll
LoadedModule[71]=C:\gs\xpprt2.dll
LoadedModule[72]=C:\WINDOWS\SYSTEM32\bcrypt.dll
LoadedModule[73]=C:\gs\FRONTEND.dll
LoadedModule[74]=C:\gs\HRFCLASS.dll
LoadedModule[75]=C:\gs\xpphrfp.dll
LoadedModule[76]=C:\WINDOWS\System32\IMM32.DLL
LoadedModule[77]=C:\WINDOWS\SYSTEM32\uxtheme.dll
LoadedModule[78]=C:\WINDOWS\SYSTEM32\dwmapi.dll
LoadedModule[79]=C:\WINDOWS\SYSTEM32\SCHANNEL.DLL
LoadedModule[80]=C:\WINDOWS\SYSTEM32\Activeds.dll
LoadedModule[81]=C:\WINDOWS\SYSTEM32\adsldpc.dll
LoadedModule[82]=C:\WINDOWS\System32\WLDAP32.dll
LoadedModule[83]=C:\gs\DBFDBE.DLL
LoadedModule[84]=C:\gs\NTXDBE.DLL
LoadedModule[85]=C:\gs\DELDBE.DLL
LoadedModule[86]=C:\gs\SDFDBE.DLL
LoadedModule[87]=C:\gs\ADSDBE.DLL
LoadedModule[88]=C:\gs\ACE32.dll
LoadedModule[89]=C:\WINDOWS\SYSTEM32\WSOCK32.dll
LoadedModule[90]=C:\WINDOWS\system32\napinsp.dll
LoadedModule[91]=C:\WINDOWS\system32\pnrpnsp.dll
LoadedModule[92]=C:\WINDOWS\system32\NLAapi.dll
LoadedModule[93]=C:\WINDOWS\System32\mswsock.dll
LoadedModule[94]=C:\WINDOWS\SYSTEM32\DNSAPI.dll
LoadedModule[95]=C:\WINDOWS\System32\NSI.dll
LoadedModule[96]=C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
LoadedModule[97]=C:\WINDOWS\System32\winrnr.dll
LoadedModule[98]=C:\gs\axcws32.dll
LoadedModule[99]=C:\WINDOWS\System32\fwpuclnt.dll
LoadedModule[100]=C:\Windows\System32\rasadhlp.dll
LoadedModule[101]=C:\WINDOWS\System32\MSCTF.dll
LoadedModule[102]=C:\WINDOWS\System32\clbcatq.dll
LoadedModule[103]=C:\GS\MTAPI32.DLL
LoadedModule[104]=C:\gs\MTAI32.dll
LoadedModule[105]=C:\gs\OEModus.dll
LoadedModule[106]=C:\WINDOWS\SYSTEM32\MFC42.DLL
LoadedModule[107]=C:\WINDOWS\SYSTEM32\ODBC32.dll
LoadedModule[108]=C:\WINDOWS\SYSTEM32\DPAPI.dll
LoadedModule[109]=C:\Program Files (x86)\PFU\ScanSnap\CardMinder\CardHook.dll
LoadedModule[110]=C:\WINDOWS\SYSTEM32\OLEACC.dll
State[0].Key=Transport.DoneStage1
State[0].Value=1
File[0].CabName=WERInternalMetadata.xml
File[0].Path=WER3A72.tmp.WERInternalMetadata.xml
File[0].Flags=851971
File[0].Type=5
File[0].Original.Path=\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER3A72.tmp.WERInternalMetadata.xml
File[1].CabName=memory.csv
File[1].Path=WER462A.tmp.csv
File[1].Flags=851971
File[1].Type=5
File[1].Original.Path=\\?\c:\temp\WER462A.tmp.csv
File[2].CabName=sysinfo.txt
File[2].Path=WER463B.tmp.txt
File[2].Flags=851971
File[2].Type=5
File[2].Original.Path=\\?\c:\temp\WER463B.tmp.txt
File[3].CabName=triagedump.dmp
File[3].Path=WER4D60.tmp.dmp
File[3].Flags=539820035
File[3].Type=6
File[3].Original.Path=\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER4D60.tmp.dmp
File[4].CabName=WERDataCollectionFailure.txt
File[4].Path=WER51F5.tmp.WERDataCollectionFailure.txt
File[4].Flags=851971
File[4].Type=5
File[4].Original.Path=\\?\C:\temp\WER51F5.tmp.WERDataCollectionFailure.txt
File[5].CabName=Report.cab
File[5].Path=Report.cab
File[5].Flags=196608
File[5].Type=11
File[5].Original.Path=\\?\C:\WINDOWS\system32\Report.cab
FriendlyEventName=Nicht mehr funktionsfähig
ConsentKey=APPCRASH
AppName=Gsg1.exe
AppPath=C:\gs\Gsg1.exe
NsPartner=windows
NsGroup=windows8
ApplicationIdentity=AD8A4FB9B82F703FDA50B579E3AE1F61
MetadataHash=-1710132703
c:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_Gsg1.exe_f2449894fc85e3d4a16e2406fd558ea1f75db5f_9e955b2c_b383ae3b\Report.wer
Code: Alles auswählen
Version=1
EventType=APPCRASH
EventTime=131309373048428480
ReportType=2
Consent=1
UploadTime=131309373049209780
ReportIdentifier=15de1a0e-ed21-11e6-9c24-38d54712d899
IntegratorReportIdentifier=b15f046f-1e5c-4b89-8b76-2d73352ee851
WOW64=1
NsAppName=Gsg1.exe
AppSessionGuid=00000e20-0015-0024-ad73-bfde2781d201
TargetAppId=W:0000da39a3ee5e6b4b0d3255bfef95601890afd80709!0000da39a3ee5e6b4b0d3255bfef95601890afd80709!GSG1.EXE
TargetAppVer=2017//02//05:19:51:54!0!GSG1.EXE
BootId=4294967295
Response.BucketId=6b2a1fe2455e6ab8b58ba1866ec9c812
Response.BucketTable=1
Response.LegacyBucketId=108728494737
Response.type=4
Sig[0].Name=Anwendungsname
Sig[0].Value=Gsg1.exe
Sig[1].Name=Anwendungsversion
Sig[1].Value=0.0.0.0
Sig[2].Name=Anwendungszeitstempel
Sig[2].Value=5897825a
Sig[3].Name=Fehlermodulname
Sig[3].Value=StackHash_d760
Sig[4].Name=Fehlermodulversion
Sig[4].Value=0.0.0.0
Sig[5].Name=Fehlermodulzeitstempel
Sig[5].Value=00000000
Sig[6].Name=Ausnahmecode
Sig[6].Value=c000041d
Sig[7].Name=Ausnahmeoffset
Sig[7].Value=PCH_03_FROM_XPPRT1+0x000967F6
DynamicSig[1].Name=Betriebsystemversion
DynamicSig[1].Value=10.0.14393.2.0.0.256.48
DynamicSig[2].Name=Gebietsschema-ID
DynamicSig[2].Value=1031
DynamicSig[22].Name=Zusatzinformation 1
DynamicSig[22].Value=d760
DynamicSig[23].Name=Zusatzinformation 2
DynamicSig[23].Value=d760e20ab98fb93a9abbc630cf8b9e7d
DynamicSig[24].Name=Zusatzinformation 3
DynamicSig[24].Value=ab76
DynamicSig[25].Name=Zusatzinformation 4
DynamicSig[25].Value=ab761a901faf326d434b4a0c0a289dd6
UI[2]=C:\gs\Gsg1.exe
UI[3]=Gsg1.exe funktioniert nicht mehr
UI[4]=Windows kann online nach einer Lösung für das Problem suchen.
UI[5]=Online nach einer Lösung suchen und das Programm schließen
UI[6]=Später online nach einer Lösung suchen und das Programm schließen
UI[7]=Programm schließen
LoadedModule[0]=C:\gs\Gsg1.exe
LoadedModule[1]=C:\WINDOWS\SYSTEM32\ntdll.dll
LoadedModule[2]=C:\WINDOWS\System32\KERNEL32.DLL
LoadedModule[3]=C:\WINDOWS\System32\KERNELBASE.dll
LoadedModule[4]=C:\gs\GSG1D.dll
LoadedModule[5]=C:\gs\GSLIB1A.dll
LoadedModule[6]=C:\gs\GSLIB1B.dll
LoadedModule[7]=C:\gs\XPPRT1.dll
LoadedModule[8]=C:\gs\xppsys.dll
LoadedModule[9]=C:\gs\XPPDBGC.dll
LoadedModule[10]=C:\WINDOWS\System32\ADVAPI32.dll
LoadedModule[11]=C:\WINDOWS\System32\msvcrt.dll
LoadedModule[12]=C:\WINDOWS\System32\sechost.dll
LoadedModule[13]=C:\WINDOWS\System32\RPCRT4.dll
LoadedModule[14]=C:\WINDOWS\System32\SspiCli.dll
LoadedModule[15]=C:\WINDOWS\System32\CRYPTBASE.dll
LoadedModule[16]=C:\WINDOWS\System32\bcryptPrimitives.dll
LoadedModule[17]=C:\WINDOWS\System32\CRYPT32.dll
LoadedModule[18]=C:\WINDOWS\System32\ucrtbase.dll
LoadedModule[19]=C:\WINDOWS\System32\MSASN1.dll
LoadedModule[20]=C:\WINDOWS\System32\GDI32.dll
LoadedModule[21]=C:\WINDOWS\System32\gdi32full.dll
LoadedModule[22]=C:\WINDOWS\System32\USER32.dll
LoadedModule[23]=C:\WINDOWS\System32\win32u.dll
LoadedModule[24]=C:\WINDOWS\System32\WS2_32.dll
LoadedModule[25]=C:\gs\GSLIB1C.dll
LoadedModule[26]=C:\gs\ot4xb.dll
LoadedModule[27]=C:\gs\adsutil.dll
LoadedModule[28]=C:\gs\ASCOM10.dll
LoadedModule[29]=C:\gs\ASInet10.dll
LoadedModule[30]=C:\gs\bap.dll
LoadedModule[31]=C:\WINDOWS\System32\ole32.dll
LoadedModule[32]=C:\WINDOWS\System32\combase.dll
LoadedModule[33]=C:\WINDOWS\System32\OLEAUT32.dll
LoadedModule[34]=C:\WINDOWS\System32\msvcp_win.dll
LoadedModule[35]=C:\WINDOWS\System32\SHLWAPI.dll
LoadedModule[36]=C:\gs\GSG1B.dll
LoadedModule[37]=C:\gs\GSG1C.dll
LoadedModule[38]=C:\gs\GSLIB2A.dll
LoadedModule[39]=C:\gs\GSR4.dll
LoadedModule[40]=C:\gs\XBTBase1.dll
LoadedModule[41]=C:\gs\XBTBase2.dll
LoadedModule[42]=C:\gs\XbZLib.dll
LoadedModule[43]=C:\gs\XPPUI2.dll
LoadedModule[44]=C:\gs\XPPDUI.dll
LoadedModule[45]=C:\gs\ADAC20B.dll
LoadedModule[46]=C:\gs\GSLIB1D.dll
LoadedModule[47]=C:\gs\GSG1A.dll
LoadedModule[48]=C:\gs\XbFTP.dll
LoadedModule[49]=C:\gs\ASRDBC10.dll
LoadedModule[50]=C:\WINDOWS\SYSTEM32\MPR.dll
LoadedModule[51]=C:\WINDOWS\SYSTEM32\VERSION.dll
LoadedModule[52]=C:\WINDOWS\SYSTEM32\WINSPOOL.DRV
LoadedModule[53]=C:\gs\XPPUI1.dll
LoadedModule[54]=C:\gs\XppNat.dll
LoadedModule[55]=C:\gs\som.dll
LoadedModule[56]=C:\gs\WS1LIB1.dll
LoadedModule[57]=C:\gs\XPPPDF51.dll
LoadedModule[58]=C:\WINDOWS\System32\SHELL32.dll
LoadedModule[59]=C:\WINDOWS\System32\cfgmgr32.dll
LoadedModule[60]=C:\WINDOWS\System32\windows.storage.dll
LoadedModule[61]=C:\WINDOWS\System32\powrprof.dll
LoadedModule[62]=C:\WINDOWS\System32\kernel.appcore.dll
LoadedModule[63]=C:\WINDOWS\System32\shcore.dll
LoadedModule[64]=C:\WINDOWS\System32\profapi.dll
LoadedModule[65]=C:\WINDOWS\System32\comdlg32.dll
LoadedModule[66]=C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.14393.447_none_5507ded2cb4f7f4c\COMCTL32.dll
LoadedModule[67]=C:\gs\ASCOM10C.dll
LoadedModule[68]=C:\gs\GSC3.dll
LoadedModule[69]=C:\gs\Xb2NET.dll
LoadedModule[70]=C:\gs\ADAC20C.dll
LoadedModule[71]=C:\gs\xpprt2.dll
LoadedModule[72]=C:\WINDOWS\SYSTEM32\bcrypt.dll
LoadedModule[73]=C:\gs\FRONTEND.dll
LoadedModule[74]=C:\gs\HRFCLASS.dll
LoadedModule[75]=C:\gs\xpphrfp.dll
LoadedModule[76]=C:\WINDOWS\System32\IMM32.DLL
LoadedModule[77]=C:\WINDOWS\SYSTEM32\uxtheme.dll
LoadedModule[78]=C:\WINDOWS\SYSTEM32\dwmapi.dll
LoadedModule[79]=C:\WINDOWS\SYSTEM32\SCHANNEL.DLL
LoadedModule[80]=C:\WINDOWS\SYSTEM32\Activeds.dll
LoadedModule[81]=C:\WINDOWS\SYSTEM32\adsldpc.dll
LoadedModule[82]=C:\WINDOWS\System32\WLDAP32.dll
LoadedModule[83]=C:\gs\DBFDBE.DLL
LoadedModule[84]=C:\gs\NTXDBE.DLL
LoadedModule[85]=C:\gs\DELDBE.DLL
LoadedModule[86]=C:\gs\SDFDBE.DLL
LoadedModule[87]=C:\gs\ADSDBE.DLL
LoadedModule[88]=C:\gs\ACE32.dll
LoadedModule[89]=C:\WINDOWS\SYSTEM32\WSOCK32.dll
LoadedModule[90]=C:\WINDOWS\system32\napinsp.dll
LoadedModule[91]=C:\WINDOWS\system32\pnrpnsp.dll
LoadedModule[92]=C:\WINDOWS\system32\NLAapi.dll
LoadedModule[93]=C:\WINDOWS\System32\mswsock.dll
LoadedModule[94]=C:\WINDOWS\SYSTEM32\DNSAPI.dll
LoadedModule[95]=C:\WINDOWS\System32\NSI.dll
LoadedModule[96]=C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
LoadedModule[97]=C:\WINDOWS\System32\winrnr.dll
LoadedModule[98]=C:\gs\axcws32.dll
LoadedModule[99]=C:\WINDOWS\System32\fwpuclnt.dll
LoadedModule[100]=C:\Windows\System32\rasadhlp.dll
LoadedModule[101]=C:\WINDOWS\System32\MSCTF.dll
LoadedModule[102]=C:\WINDOWS\System32\clbcatq.dll
LoadedModule[103]=C:\GS\MTAPI32.DLL
LoadedModule[104]=C:\gs\MTAI32.dll
LoadedModule[105]=C:\gs\OEModus.dll
LoadedModule[106]=C:\WINDOWS\SYSTEM32\MFC42.DLL
LoadedModule[107]=C:\WINDOWS\SYSTEM32\ODBC32.dll
LoadedModule[108]=C:\WINDOWS\SYSTEM32\DPAPI.dll
LoadedModule[109]=C:\Program Files (x86)\PFU\ScanSnap\CardMinder\CardHook.dll
LoadedModule[110]=C:\WINDOWS\SYSTEM32\OLEACC.dll
State[0].Key=Transport.DoneStage1
State[0].Value=1
FriendlyEventName=Nicht mehr funktionsfähig
ConsentKey=APPCRASH
AppName=Gsg1.exe
AppPath=C:\gs\Gsg1.exe
NsPartner=windows
NsGroup=windows8
ApplicationIdentity=AD8A4FB9B82F703FDA50B579E3AE1F61
MetadataHash=885501584
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: EXE funktioniert nicht mehr - MS-Fehlermeldung
Wow ... da hast da ja etliches in deiner Xbase++ App.
du solltest die Logfiles mal an Alaska schicken ob die damit was anfangen können ... oder einen M$ Spezialisten.
was ich immer gerne bei den M$ OS() Beta Versionen gemacht habe : nach einer neuen Version "den" Fehler melden.
die Jungs vom Windows Insider Team sind ganz scharf auf Fehlermeldung ... auch wenn es sich raus stellt das es nichts mit der OS() beta Version zu tun hat.
und da wäre ich auch schon bei meiner Frage : was war das letzte was du "neu" eingebaut hast bevor das Problem auftauchte ?
einen Tip habe ich aber schon jetzt : schmeiss BAP raus wenn du ot4xb verwendest
du solltest die Logfiles mal an Alaska schicken ob die damit was anfangen können ... oder einen M$ Spezialisten.
was ich immer gerne bei den M$ OS() Beta Versionen gemacht habe : nach einer neuen Version "den" Fehler melden.
die Jungs vom Windows Insider Team sind ganz scharf auf Fehlermeldung ... auch wenn es sich raus stellt das es nichts mit der OS() beta Version zu tun hat.
und da wäre ich auch schon bei meiner Frage : was war das letzte was du "neu" eingebaut hast bevor das Problem auftauchte ?
einen Tip habe ich aber schon jetzt : schmeiss BAP raus wenn du ot4xb verwendest
gruss by OHR
Jimmy
Jimmy
Re: EXE funktioniert nicht mehr - MS-Fehlermeldung
Hallo Jimmy
Die habe ich über dieses Thema im Forum informiert und ich hoffe, dass sie reinschauen damit ich nicht alles x-Mal schreiben muss.
Ich meine aber, dass im Hauptprozess ein weiterer Thread (CTI) dazugekommen ist. Der ist bisher in einer eigenen EXE abgelaufen - ohne Probleme. Diese EXE läuft jetzt teilwese noch zusätzlich parallel.
Anfangs war der Fehler selten, irgendwann ist er häufiger aufgetreten.
Laut meinem Protokoll werden verschiedentlich immer noch nicht alle Threads beim Programmende gestoppt. Gerade baue ich eine eigene Sleep()-Funktion. Ich habe den Verdacht, dass längere Sleep()-Phasen nicht durch ein Programmende (App herunterfahren) abgebrochen werden könnenund deshalb die Meldung "EXE reagiert nicht mehr" kommt.
Mit dem Alaska-Support stehe ich schon einige Monate deswegen in Kontakt.AUGE_OHR hat geschrieben:du solltest die Logfiles mal an Alaska schicken ob die damit was anfangen können ...
Die habe ich über dieses Thema im Forum informiert und ich hoffe, dass sie reinschauen damit ich nicht alles x-Mal schreiben muss.
Eigentlich verwende ich keine Beta-Versionen - wie kommst Du darauf?AUGE_OHR hat geschrieben:was ich immer gerne bei den M$ OS() Beta Versionen gemacht habe
Wenn ich das noch genau wüßte.AUGE_OHR hat geschrieben:was war das letzte was du "neu" eingebaut hast bevor das Problem auftauchte ?
Ich meine aber, dass im Hauptprozess ein weiterer Thread (CTI) dazugekommen ist. Der ist bisher in einer eigenen EXE abgelaufen - ohne Probleme. Diese EXE läuft jetzt teilwese noch zusätzlich parallel.
Anfangs war der Fehler selten, irgendwann ist er häufiger aufgetreten.
Laut meinem Protokoll werden verschiedentlich immer noch nicht alle Threads beim Programmende gestoppt. Gerade baue ich eine eigene Sleep()-Funktion. Ich habe den Verdacht, dass längere Sleep()-Phasen nicht durch ein Programmende (App herunterfahren) abgebrochen werden könnenund deshalb die Meldung "EXE reagiert nicht mehr" kommt.
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: EXE funktioniert nicht mehr - MS-Fehlermeldung
mit Thread die noch laufen hatte ich auch so meine Probleme die zu "stoppen".DelUser01 hat geschrieben:Laut meinem Protokoll werden verschiedentlich immer noch nicht alle Threads beim Programmende gestoppt.
Frage : eigene Thread Class oder "nur" Aufruf in o:Start() ?
Code: Alles auswählen
aInfo := ThreadInfo( THREADINFO_TID + ;
THREADINFO_SYSTHND + ;
THREADINFO_FUNCINFO + ;
THREADINFO_TOBJ )
hm ... JA ... ein langes SLEEP() hält natürlich auf ...DelUser01 hat geschrieben:Gerade baue ich eine eigene Sleep()-Funktion. Ich habe den Verdacht, dass längere Sleep()-Phasen nicht durch ein Programmende (App herunterfahren) abgebrochen werden können und deshalb die Meldung "EXE reagiert nicht mehr" kommt.
hm ... und was machst du an der Stelle ?
wie schon gesagt ist die Frage wie du Threads verwendet um diese zu "terminieren" ?
ich öffne z.b. MDI Fenster so per Thread
Code: Alles auswählen
oKundThread := Thread():new()
oKundThread:start( bBlock )
// 4th Parameter later filled with SP_ThreadObj()
SP_ThreadAdd( { nSeekRec, cAction, aPos, "", "KUNDEN" } )
PROCEDURE PDRdetail( oParent, oOwner, aPos, aSize, aPP, lVisible, cAction, nSeekRec, oGUIbrowse )
...
oDlg := PdrLfuDialog() :New( oParent,, aPos, aSize, aPP, lVisible )
oDlg:Close := { || IF( oDlg:EntryChange(), lExit := oDlg:ConfirmIt(), lExit := .T. ) }
...
SP_ThreadObj( nSeekRec, cAction, oDlg, "KUNDEN" )
...
DO WHILE !lExit
nEvent := APPEVENT( @mp1, @mp2, @oXbp )
...
ENDDO
CLOSE
oDlg:destroy()
// delete Thread from Array
//
nPosi := ASCAN( aThread, { | x | x[ ID_REC ] == nSeekRec .AND. ;
x[ ID_WHO ] == "KUNDEN" } )
IF nPosi > 0
SP_ThreadDel( nPosi )
ENDIF
RETURN
ein CloseAllThread() schliesst nun alle Fenster und somit auch die Threads
Code: Alles auswählen
METHOD MainDialog:CloseAllThread()
LOCAL i
LOCAL aThread := SP_Thread()
LOCAL nLen := LEN( aThread )
FOR i := nLen TO 1 STEP - 1
IF aThread[ i ] [ ID_OBJ ]:lIsMarked = .F.
PostAppEvent( xbeP_Close,,, aThread[ i ] [ ID_OBJ ] )
ENDIF
SLEEP( 1 )
NEXT
RETURN
gruss by OHR
Jimmy
Jimmy
Re: EXE funktioniert nicht mehr - MS-Fehlermeldung
In jedem Thread habe ich eine Methode ::CheckTermination
In der Hauptschleife des Threads ist ein Sleep() mit mehr oder weniger langen, flexiblen Wartezeiten. In der Schleife wird ::CheckTermination abgefragt.
Beim Beenden des EXE wird unter anderem ein Flag (Static) gesetzt welches in ::CheckTermination das Beenden des Threads veranlasst.
Ein zentrales Beenden der Threads hatte ich von Anfang an. Damit konnten aber die "Langschöäfer" nicht beendet werden.
Jetzt bin ich hergegangen und habe eine Sleep-Funktion für die Threads gemacht welche in kurzen Abständen ::CheckTermination abfrägt, aber erst nach Ablauf der ursprünglichen Sleep-Zeit zur Hauptschleife des Thread zurückkehrt.
Bin gerade damit fertig geworden und es scheint zu funktionieren. Zumindest die Threads welche immer wieder übrig geblieben sind wurden jetzt beendet.
Habe das gerade in den Live-Betrieb übertragen - mal sehen was die nächsten Tagen passiert (auch bei den Kunden).
Ich hoffe es wirkt - mir gehen die Ideen aus...
In der Hauptschleife des Threads ist ein Sleep() mit mehr oder weniger langen, flexiblen Wartezeiten. In der Schleife wird ::CheckTermination abgefragt.
Beim Beenden des EXE wird unter anderem ein Flag (Static) gesetzt welches in ::CheckTermination das Beenden des Threads veranlasst.
Ein zentrales Beenden der Threads hatte ich von Anfang an. Damit konnten aber die "Langschöäfer" nicht beendet werden.
Jetzt bin ich hergegangen und habe eine Sleep-Funktion für die Threads gemacht welche in kurzen Abständen ::CheckTermination abfrägt, aber erst nach Ablauf der ursprünglichen Sleep-Zeit zur Hauptschleife des Thread zurückkehrt.
Bin gerade damit fertig geworden und es scheint zu funktionieren. Zumindest die Threads welche immer wieder übrig geblieben sind wurden jetzt beendet.
Habe das gerade in den Live-Betrieb übertragen - mal sehen was die nächsten Tagen passiert (auch bei den Kunden).
Ich hoffe es wirkt - mir gehen die Ideen aus...
Re: EXE funktioniert nicht mehr - MS-Fehlermeldung
Die Frage habe ich übersehen:
Jedes Thread eine eigene Class.AUGE_OHR hat geschrieben:Frage : eigene Thread Class oder "nur" Aufruf in o:Start() ?
Re: EXE funktioniert nicht mehr - MS-Fehlermeldung
Status/Ergänzung
1) Trotz der Änderung der Threads mit wesentlich kürzeren Sleep()-Phasen kommt der Fehler noch immer.
2) Laut meinem Log sind jetzt (fast) immer alle Threads zum Programmende terminiert. Und doch kommt es dazwischen vor, dass ALLE Threads noch laufen! Das Terminieren der EXE scheint also manchmal schneller abzulaufen wie das Beenden meiner Threads.
Habe aber immer noch keinen "Beweis" für einen direkten Zusammenhang von schlafenden Threads mit dem reagiert-nicht-mehr-Fehler.
Werde jetzt AppExit erweitern und dort auf das Beenden meiner Threads warten. Mal sehen...
1) Trotz der Änderung der Threads mit wesentlich kürzeren Sleep()-Phasen kommt der Fehler noch immer.
2) Laut meinem Log sind jetzt (fast) immer alle Threads zum Programmende terminiert. Und doch kommt es dazwischen vor, dass ALLE Threads noch laufen! Das Terminieren der EXE scheint also manchmal schneller abzulaufen wie das Beenden meiner Threads.
Habe aber immer noch keinen "Beweis" für einen direkten Zusammenhang von schlafenden Threads mit dem reagiert-nicht-mehr-Fehler.
Werde jetzt AppExit erweitern und dort auf das Beenden meiner Threads warten. Mal sehen...
Zuletzt geändert von DelUser01 am Fr, 10. Feb 2017 2:42, insgesamt 2-mal geändert.
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: EXE funktioniert nicht mehr - MS-Fehlermeldung
hi,
jetzt muss ich noch mal nachfrage was passiert in den Threads ? wozu hast du da ein "langes" SLEEP() ?
bei mir sind Threads meistens "Fenster" und dafür benötige ich eine Eventloop.
wenn ich vom Bespiel \SOURCE\samples\basics\THREAD\Worms.prg ausgeheaus so einer Schleife "müsste" er ziemlich schnell raus kommen.
das ist im Grunde die beste VoraussetzungDelUser01 hat geschrieben:Jedes Thread eine eigene Class.
jetzt muss ich noch mal nachfrage was passiert in den Threads ? wozu hast du da ein "langes" SLEEP() ?
bei mir sind Threads meistens "Fenster" und dafür benötige ich eine Eventloop.
wenn ich vom Bespiel \SOURCE\samples\basics\THREAD\Worms.prg ausgehe
Code: Alles auswählen
DO WHILE !::lTerminateRequest
unabhängig von den Threads hatte ich BAP und ot4xb gesehen. wenn du noch alten BAP Code hast solltest du mal sehen ob es davon nicht eine ot4xb Version gibt.DelUser01 hat geschrieben:Habe aber immer noch keinen "Beweis" für einen direkten Zusammenhang von schlafenden Threads mit dem reagiert-nicht-mehr-Fehler.
gruss by OHR
Jimmy
Jimmy
Re: EXE funktioniert nicht mehr - MS-Fehlermeldung
permanente Threads für:AUGE_OHR hat geschrieben:was passiert in den Threads ?
- 3x Telefonie (CTI) über TAPI,
- 1x Fenster-Aktualisierung,
- 2x System-Prozessabfragen
- 3x Dokumentenmanagement (Verwaltung aller Dateien)
- 1x Hardcopy
Weitere Threads sind zeitlich begrenzt und (sollten) beim Programmende bereits terminiert sein.
In manchen Threads wird je nach Bedarf des Users die Sleep-Time länger oder kürzer.AUGE_OHR hat geschrieben:wozu hast du da ein "langes" SLEEP() ?
Das ist eigentlich nur um System-Resourcen zu schonen (CPU, Netzwerk, Festplatten).
Möglich dass das auch ein Problem darstellt, aber insgesam funktioniert mein Programm. Ob BAP beim Beenden eine Störung verursacht...?AUGE_OHR hat geschrieben:...hatte ich BAP und ot4xb gesehen. wenn du noch alten BAP Code hast solltest du mal sehen ob es davon nicht eine ot4xb Version gibt.
Bei den Fenstern habe ich seit langen Jahren meinen eigenen Stil, mit den für GUI tüpischen List-Fenstern usw. arbeite ich nicht oft. Stattdessen bekommt der User bei mir ein neues vollständiges EXE-Fenster (Slave) mit allen Möglichkeiten des Haupt-EXE-Fensters (Master) direkt verlinkt miteinander (die EXE kommunizieren miteinander). Der User kann mit so vielen verlinkten Fenstern arbeiten wie er Lust hat (Master/Slave).AUGE_OHR hat geschrieben:bei mir sind Threads meistens "Fenster" und dafür benötige ich eine Eventloop
Am Tag werden also unzählige dieser Fenster - vollständige EXE - von einem User geöffnet und geschlossen.
Deshlab ist es unabdingbar dass das Terminieren des Programms schnell und unproblematisch funktioniert.
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: EXE funktioniert nicht mehr - MS-Fehlermeldung
WOW ... das sind ja eine Menge Threads.DelUser01 hat geschrieben:permanente Threads für:AUGE_OHR hat geschrieben:was passiert in den Threads ?
- 3x Telefonie (CTI) über TAPI,
- 1x Fenster-Aktualisierung,
- 2x System-Prozessabfragen
- 3x Dokumentenmanagement (Verwaltung aller Dateien)
- 1x Hardcopy
Weitere Threads sind zeitlich begrenzt und (sollten) beim Programmende bereits terminiert sein.
was ich meine : auf einen "Schalter" zu regieren ist eine Sache aber Windows arbeitet mit Events.
ein SLEEP() fügt man ja ein, wie du richtig sagt, damit auch andere Resourcen bekommen.
das betrifft aber IMHO weniger den Xbase++ Code als Windows der ja auch seine Zeit braucht für Events.
angenommen du hast ein SLEEP(100), das könnte man auch so schreiben
Code: Alles auswählen
nEvent := APPEVENT( @mp1, @mp2, @oXbp, 100 )
DO CASE
CASE nEvent == xbe_None
// bei Timeout
CASE nEvent == My_MachAllesZu
// UserDEF Event
OTHERWISE
oXbp:HandleEvent( nEvent, mp1, mp2 )
ENDCASE
beim XbpDialog habe ich ja den o:Close Slot den ich als Event ansprechen kann.
wenn man keinen "fertigen" Event findet muss man eben sich selbst einen Event definieren. ( My_MachAllesZu )
überlege es dir mal ob du die SLEEP() so umbauen kannst um die Threads "reaktiver" zu machen.
gruss by OHR
Jimmy
Jimmy
Re: EXE funktioniert nicht mehr - MS-Fehlermeldung
Hallo Jimmy
habe das im Augenblick so gelöst:
Das mit dem von Dir vorgeschlagenen HandleEvent() könnte auch funktionieren. Das ist mir aber als Ersatz für Sleep() zu suspekt. Die möglichen "Nebenwirkungen" kann ich mir umfangreich vorstellen.
habe das im Augenblick so gelöst:
Code: Alles auswählen
Function GsThreadSleep( nSleepSoll , bCheckTermination , nSleepStep )
Local nCnt1
If nSleepStep == NIL
nSleepStep := 25
EndIf
EVal( bCheckTermination )
For nCnt1 := 0 To nSleepSoll Step nSleepStep
Sleep( nSleepStep )
EVal( bCheckTermination )
Next nCnt1
Return( .T. )
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: EXE funktioniert nicht mehr - MS-Fehlermeldung
hi,
ich denke hier liegt ein missverständniss vor wie ich AppEvent statt SLEEP() meinebei einem APPEVENT "wartet" er bis ein Event eintrifft oder mit dem 4th Parameter ein Timeout Event gesendet wird.
Events, durch den User z.b. Maus, passieren aber nur im Vordergrund d.h. im Hintergrund kommt nur der Timeout Event "itself"
---
das Demo soll nur zeigen das er wirklich wartet da keine (Maus) Event hier eintreten können.
allerdings ist eine FUNCTION nicht angesagt wenn du ihm einen eigenen UserDEF Event (My_MachAllesZu) schicken willst den fürbrauchst du ja ein Object wie deine CLASS.
p.s. jedes Windows Control hat seine eigene Event Schleife
hm ... das EVAL() bringt ihn aber auch nicht aus der Schleife ...DelUser01 hat geschrieben:Code: Alles auswählen
For nCnt1 := 0 To nSleepSoll Step nSleepStep Sleep( nSleepStep ) EVal( bCheckTermination ) Next nCnt1 Return( .T. )
ich denke hier liegt ein missverständniss vor wie ich AppEvent statt SLEEP() meine
Code: Alles auswählen
#include "Appevent.ch"
#define My_MachAllesZu xbeP_User + 1
PROCEDURE MAIN
LOCAL lExit := .F.
DO WHILE !lExit
lExit := GsThreadSleep( 100 , {|| ShowTime() } )
ENDDO
RETURN
Function GsThreadSleep( nSleepSoll , bCheckTermination )
LOCAL nEvent, mp1, mp2, oXbp
LOCAL lRet := .F.
// er wartet hier auf einen Event
nEvent := APPEVENT( @mp1, @mp2, @oXbp, nSleepSoll )
DO CASE
CASE nEvent == xbe_None
EVal( bCheckTermination )
CASE nEvent == My_MachAllesZu
// UserDEF Event wir hier nie angesprochen
lRet := .T.
CASE nEvent == xbeP_Keyboard .AND. mp1 == xbeK_ESC
// mit /PM:PM
lRet := .T.
OTHERWISE
oXbp:HandleEvent( nEvent, mp1, mp2 )
ENDCASE
RETURN lRet
FUNCTION ShowTime()
DispOutAt(0, MaxCol()-7, Time(), "W+/B")
RETURN NIL
Events, durch den User z.b. Maus, passieren aber nur im Vordergrund d.h. im Hintergrund kommt nur der Timeout Event "itself"
---
das Demo soll nur zeigen das er wirklich wartet da keine (Maus) Event hier eintreten können.
allerdings ist eine FUNCTION nicht angesagt wenn du ihm einen eigenen UserDEF Event (My_MachAllesZu) schicken willst den für
Code: Alles auswählen
PostAppEvent(My_MachAllesZu,,, Empfänger)
p.s. jedes Windows Control hat seine eigene Event Schleife
gruss by OHR
Jimmy
Jimmy
- brandelh
- Foren-Moderator
- Beiträge: 15689
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: EXE funktioniert nicht mehr - MS-Fehlermeldung
Nach der Dokumentation von Xbase++ und den Beispielen aus dem Threads Ordner braucht man sich um Xbase++ Threads selbst keine Sorgen machen.
Die werden einwandfrei beendet, natürlich kann es sein, dass eine "Aufgabe" beendet werden muss, dann muss man das berücksichtigen.
Ansonsten wird mit dem Ende der EXE jeder Thread beendet, der beendet werden kann !
Warum "hängt" ein Rechner obwohl viel schneller als früher ?
Meist weil er auf "Netzwerklaufwerke" (verschwunden, nicht vorhanden) , Serielle COM Schnittstellen oder sonstige Fremd Programme warten muss.
Eventuell auch, weil eine Endlosschleife in der event loop (des Threads) vorliegt, oder 2 Threads sich gegenseitig blocken (ähnlich Dead-Lock bei Dateien).
Falls ein Thread also sowas überwacht, muss man diesem mitteilen, dass er die externen Schnittstellen freigeben und seine Arbeit beenden soll.
Ob man dafür Signale oder Variablen nutzt ist Geschmackssache.
Es gibt ein Beispiel das einen Kaffee Automat simuliert.
Die werden einwandfrei beendet, natürlich kann es sein, dass eine "Aufgabe" beendet werden muss, dann muss man das berücksichtigen.
Ansonsten wird mit dem Ende der EXE jeder Thread beendet, der beendet werden kann !
Warum "hängt" ein Rechner obwohl viel schneller als früher ?
Meist weil er auf "Netzwerklaufwerke" (verschwunden, nicht vorhanden) , Serielle COM Schnittstellen oder sonstige Fremd Programme warten muss.
Eventuell auch, weil eine Endlosschleife in der event loop (des Threads) vorliegt, oder 2 Threads sich gegenseitig blocken (ähnlich Dead-Lock bei Dateien).
Falls ein Thread also sowas überwacht, muss man diesem mitteilen, dass er die externen Schnittstellen freigeben und seine Arbeit beenden soll.
Ob man dafür Signale oder Variablen nutzt ist Geschmackssache.
Es gibt ein Beispiel das einen Kaffee Automat simuliert.
Gruß
Hubert
Hubert
- Lewi
- 1000 working lines a day
- Beiträge: 830
- Registriert: Di, 07. Feb 2006 14:10
- Wohnort: Hamburg
- Danksagung erhalten: 2 Mal
Re: EXE funktioniert nicht mehr - MS-Fehlermeldung
Nach meinen Erfahren liegen die Ursachen daran, dass ein Thread sich zum Zeitpunkt einer Programmterminierung sich in einer Pause bzw. einem Wartetzstand befindet oder eine zeitintensive Aktion durchführt (z.B. Daten schreiben, etc).
Ich habe die Probleme dahingehend gelöst, dass ich die Wartezustände in Threads in eine Do-While Schleife überführe und die Sleeps in Milli-Sekundenbereich takte und eine lokale Variable bis zur gewünschten Wartezeit hochzähle. Jeder Thread hat Zugriff auf zwei globale Variablen( z.B. lExeQuite, lThreadXYZ). Sobald ein Thread abgearbeitet ist, wird lThreadXZ auf false gesetzt, ansonsten ist er true.
Bei Programmbeendigung wird lExeQuite auf true gesetzt. Es wird geprüft, ob ein lTreadXZ auf true steht und wartet dann darauf, das der Thread selbst die Variable auf false setzt. Innerhalb eines Threads erfolgt ein Abbruch wenn lExeQuite=true ist.
Das Problem von Programmlaufzeitfehlern bei Programmbeendigungen bei laufenden Threads tritt nicht nur bei Xbase++ auf sondern auch in WinDev. Nachdem ich den Programmcode entsprechend der geschilderten Weise umgestellt hatte, treten keine Fehler mehr auf.
Viele Grüße
Olaf
Ich habe die Probleme dahingehend gelöst, dass ich die Wartezustände in Threads in eine Do-While Schleife überführe und die Sleeps in Milli-Sekundenbereich takte und eine lokale Variable bis zur gewünschten Wartezeit hochzähle. Jeder Thread hat Zugriff auf zwei globale Variablen( z.B. lExeQuite, lThreadXYZ). Sobald ein Thread abgearbeitet ist, wird lThreadXZ auf false gesetzt, ansonsten ist er true.
Bei Programmbeendigung wird lExeQuite auf true gesetzt. Es wird geprüft, ob ein lTreadXZ auf true steht und wartet dann darauf, das der Thread selbst die Variable auf false setzt. Innerhalb eines Threads erfolgt ein Abbruch wenn lExeQuite=true ist.
Das Problem von Programmlaufzeitfehlern bei Programmbeendigungen bei laufenden Threads tritt nicht nur bei Xbase++ auf sondern auch in WinDev. Nachdem ich den Programmcode entsprechend der geschilderten Weise umgestellt hatte, treten keine Fehler mehr auf.
Viele Grüße
Olaf
Re: EXE funktioniert nicht mehr - MS-Fehlermeldung
Hallo Hubert
deshalb versuche ich jetzt erst einmal umfangreich den Zustand der Threads beim Programmende herauszubekommen.
Noch habe ich die Hoffnung dass der Fehler mit den Threads zusammenhängt - leider kann das auch eine Sackgasse sein und der Fehler kommt von ganz woandes...
deshalb versuche ich jetzt erst einmal umfangreich den Zustand der Threads beim Programmende herauszubekommen.
Noch habe ich die Hoffnung dass der Fehler mit den Threads zusammenhängt - leider kann das auch eine Sackgasse sein und der Fehler kommt von ganz woandes...
Re: EXE funktioniert nicht mehr - MS-Fehlermeldung
Hallo Olaf
Zumindest gibt mir Dein Beitrag die Hoffnung, dass es sich bei meinem Fehler um das gleiche Problem handelt und die Lösung über die Bereinigung/Umstellung der Threads erreicht werden kann.
Nachdem der Fehler z.Zt. leider wieder häufig auftritt bin ich da täglich dran.
Meine Protokolle besagen, dass inzwischen eigentlich alle Threads sauber beendet werden, dann erst das EXE.
Zwei Threads scheinen aber immer wieder Probleme zu haben und gar nicht oder träge auf die Terminierungs-Anforderung reagieren. Beide haben Aufgaben welche mit Betriebssystem-Abfragen zusammenhängen (Windows-Prozesse).
Ich versuche das jetzt noch zu im Detail herauszufinden.
Das Seltsame ist, dass als der Fehler vor einigen Monaten zum ersten Mal auftrat an den Threads nichts gedreht wurde und diese schon seit Jahren laufen. Zumindest soweit ich das zurückverfolgen kann.
So ähnlich laufen meine Threads inzwischen auch ab, das habe ich die letzten Tage umgestellt. Habe aber im Kern immer noch ein Sleep(10).Lewi hat geschrieben:Ich habe die Probleme dahingehend gelöst, dass ich die Wartezustände in Threads in eine Do-While Schleife überführe und die Sleeps in Milli-Sekundenbereich takte und eine lokale Variable bis zur gewünschten Wartezeit hochzähle. Jeder Thread hat Zugriff auf zwei globale Variablen( z.B. lExeQuite, lThreadXYZ). Sobald ein Thread abgearbeitet ist, wird lThreadXZ auf false gesetzt, ansonsten ist er true.
Zumindest gibt mir Dein Beitrag die Hoffnung, dass es sich bei meinem Fehler um das gleiche Problem handelt und die Lösung über die Bereinigung/Umstellung der Threads erreicht werden kann.
Nachdem der Fehler z.Zt. leider wieder häufig auftritt bin ich da täglich dran.
Meine Protokolle besagen, dass inzwischen eigentlich alle Threads sauber beendet werden, dann erst das EXE.
Zwei Threads scheinen aber immer wieder Probleme zu haben und gar nicht oder träge auf die Terminierungs-Anforderung reagieren. Beide haben Aufgaben welche mit Betriebssystem-Abfragen zusammenhängen (Windows-Prozesse).
Ich versuche das jetzt noch zu im Detail herauszufinden.
Das Seltsame ist, dass als der Fehler vor einigen Monaten zum ersten Mal auftrat an den Threads nichts gedreht wurde und diese schon seit Jahren laufen. Zumindest soweit ich das zurückverfolgen kann.
- Martin Altmann
- Foren-Administrator
- Beiträge: 16502
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: EXE funktioniert nicht mehr - MS-Fehlermeldung
Roland,
werden in diesen problematischen Threads irgendwelche OCX/ActiveX-Komponenten genutzt?
Viele Grüße,
Martin
werden in diesen problematischen Threads irgendwelche OCX/ActiveX-Komponenten genutzt?
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.