Einzelnen Beitrag anzeigen

Poolspieler

Registriert seit: 9. Aug 2004
165 Beiträge
 
Delphi 10.3 Rio
 
#1

Anwendung beendet sich nicht (seit XE2)

  Alt 16. Okt 2011, 19:12
Hallo,
seit ich XE2 benutze, beendet sich meine Anwendung (die aus mehreren Threads besteht) manchmal nicht.
Die CPU-Last geht nach klicken auf das "Beenden-Kreuz" auf 100% für den aktiven CPU-Kern.
Wenn ich in der Entwicklungsumgebung auf Pause drücke, dann erscheint folgender Assembler-Code:

Code:
ntdll.RtlUserThreadStart:
770701C4 89442404         mov [esp+$04],eax
770701C8 895C2408         mov [esp+$08],ebx
770701CC E9B99C0200       jmp $77099e8a
770701D1 8DA42400000000   lea esp,[esp+$0000]
770701D8 8DA42400000000   lea esp,[esp+$0000]
770701DF 90               nop
ntdll.KiFastSystemCall:
770701E0 8BD4             mov edx,esp
770701E2 0F34             sysenter
ntdll.KiFastSystemCallRet:
770701E4 C3               ret
770701E5 8DA42400000000   lea esp,[esp+$0000]
770701EC 8D642400         lea esp,[esp+$00]
ntdll.KiIntSystemCall:
770701F0 8D542408         lea edx,[esp+$08]
770701F4 CD2E            int $2e
770701F6 C3               ret
770701F7 90               nop
770701F8 0000             add [eax],al
770701FA 0000             add [eax],al
770701FC 1889E74C0000     sbb [ecx+$00004ce7],cl
77070202 0000             add [eax],al
77070204 50               push eax
77070205 51               push ecx
77070206 0100             add [eax],eax
77070208 0100             add [eax],eax
7707020A 0000             add [eax],al
7707020C F007             lock pop es
7707020E 0000             add [eax],al
77070210 E807000020       call $9707021c
77070215 0201             add al,[ecx]
77070217 00E0             add al,ah
77070219 2101             and [ecx],eax
7707021B 0080410100BC    add [eax-$43fffebf],al
77070221 BB0A0058BC      mov ebx,$bc58000a
77070226 0A00             or al,[eax]
77070228 81B70A0015B90A005DB7 xor [edi-$46eafff6],$b75d000a
77070232 0A00             or al,[eax]
77070234 51               push ecx
77070235 B50A            mov ch,$0a
77070237 008DBB0A00BE    add [ebp-$41fff545],cl
7707023D 7307             jnb $77070246
7707023F 00F1             add cl,dh
77070241 2102             and [edx],eax
77070243 005921           add [ecx+$21],bl
77070246 0200             add al,[eax]
77070248 F0260300         lock add eax,es:[eax]
7707024C E0D3             loopne $77070221
7707024E 07               pop es
7707024F 00F0             add al,dh
77070251 D307             rol [edi],cl
77070253 00D0             add al,dl
77070255 D307             rol [edi],cl
77070257 00B3260300B1     add [ebx-$4efffcda],dh
7707025D 260300           add eax,es:[eax]
77070260 7B26             jnp $77070288
77070262 0300             add eax,[eax]
77070264 D7               xlat
77070265 AC              lodsb
77070266 06               push es
77070267 00848D0600A7AD  add [ebp+ecx*4-$5258fffa],al
7707026E 06               push es
7707026F 0059D3           add [ecx-$2d],bl
77070272 0A00             or al,[eax]
77070274 D8CF            fmul st(7)
77070276 0A00             or al,[eax]
77070278 F4               hlt
77070279 D00A            ror [edx],1
7707027B 00C0             add al,al
7707027D D00A            ror [edx],1
7707027F 009AA007002F    add [edx+$2f0007a0],bl
77070285 A0070021CE      mov al,[$ce210007]
7707028A 0A00             or al,[eax]
7707028C 1BD1             sbb edx,ecx
7707028E 0A00             or al,[eax]
77070290 66A007007DD3     mov al,[$d37d0007]
77070296 0A00             or al,[eax]
77070298 D4D2             aam $d2
WARUM nur RtlUserThreadStart --> ich habe das Programm doch beendet...

Leider bin ich kein Freak auf dieser Ebene und hoffe, Ihr könnt mir einen Hinweis geben, wie ich dieses Problem lokalisieren kann.
Das Problem tritt auch auf, wenn ich aus Delphi die Anwendung "ohne Debugger" starte. Dann bleibt nach Beenden des Programms der Prozess im Taskmanager stehen...
Allerdings immer nur sporadisch. Manchmal tritt das Problem 10 Start/Ende-Zyklen nicht auf. Manchmal ist es ständig vorhanden.

Ich würde mich freuen, wenn mir jemand einen Tip geben könnte.

Beste Grüße,

Poolspieler
Andreas
  Mit Zitat antworten Zitat