Einzelnen Beitrag anzeigen

Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
 
FreePascal / Lazarus
 
#1

Opendialog-Bug in XP?

  Alt 20. Jun 2008, 11:00
Hi Leute,

ich glaube, ich habe einen Bug im OpenDialog gefunden, und zwar unter XP Home SP3. Ich habe ihn bei einem eigenen Programm entdeckt, mich lange mit Debuggen rumgeärgert, bis ich auf die Idee gekommen bin, ein leeres Programm mit nur nem OpenDialog und nem Button zu schreiben. Danach habe ich noch geschafft, den Fehler auch in notepad.exe auszulösen, was bedeutet, dass dies kein Delphi-OpenDialog-Problem ist.

Ohne Debugger äußert es sich so, dass, wenn ich eine bestimmte Datei im OpenDialog auswähle (aber auch nur, wenn diese auf meinem Desktop liegt - ich nutze den Desktop-Button ganz links, um zum Desktop zu kommen) und auf Öffnen klicke, dann erneut den OpenDialog öffne und die Maus auf irgendeine Datei halte, dass, anstelle des Tooltips, der erscheinen sollte und mit weitere Informationen zur Datei anzeigt, das Programm beendet wird.

Der Delphi-Debugger zeigt eine AV an, bietet dabei aber nur einen OK-Knopf an, nicht Fortsetzen oder Anhalten, danach kommt das CPU-Fensert mit einem Code in der SHELL32.DLL. Der Aufrufstack zeigt nur KERNEL32.DLL, darüber viermal NTDLL.DLL, dann SHLWAPI.DLL, BROWSEUI.DLL und dann fünfmal die SHELL32.DLL an.

Hier mal ein Auszug aus dem CPU-Fenster:

Code:
7E701B49 85DB            test ebx,ebx
7E701B4B 0F8C606BFAFF    jl $7e6a86b1
7E701B51 FFB5D0FDFFFF    push dword ptr [ebp-$00000230]
7E701B57 8B85CCFDFFFF    mov eax,[ebp-$00000234]
7E701B5D 8B80C4010000     mov eax,[eax+$000001c4]
7E701B63 8B08             mov ecx,[eax]
7E701B65 8D95E4FDFFFF    lea edx,[ebp-$0000021c]
7E701B6B 52               push edx
7E701B6C FFB5DCFDFFFF    push dword ptr [ebp-$00000224]
7E701B72 50               push eax
7E701B73 FF5114           call dword ptr [ecx+$14] <------- da!
7E701B76 8BD8             mov ebx,eax
7E701B78 85DB            test ebx,ebx
7E701B7A 0F84316BFAFF    jz $7e6a86b1
7E701B80 7C0C            jl $7e701b8e
7E701B82 FFB5D0FDFFFF    push dword ptr [ebp-$00000230]
7E701B88 FF1554F3867E    call dword ptr [$7e86f354]
7E701B8E 8BB5D8FDFFFF    mov esi,[ebp-$00000228]
7E701B94 FF85E0FDFFFF    inc dword ptr [ebp-$00000220]
7E701B9A 8B4678           mov eax,[esi+$78]
7E701B9D 8B8DE0FDFFFF    mov ecx,[ebp-$00000220]
7E701BA3 3B08             cmp ecx,[eax]
7E701BA5 0F8D066BFAFF    jnl $7e6a86b1
7E701BAB E94AFFFFFF      jmp $7e701afa
7E701BB0 BF05400080       mov edi,$80004005
Wie auch immer, dieser Fehler taucht zwar meist, aber doch manchmal nicht beim ersten Tooltip auf, sondern erst beim zweiten bis vierten mal so etwa, und immer nur, wenn eine ganz bestimmte Datei auf meinem Desktop vorher ausgewählt war. Und wie gesagt, dies ist kein Delphi-Problem.

Ich würde jetzt einfach gerne mal wissen, ob es noch jemand schafft, den Fehler nachzuvollziehen. Wie gesagt, er tritt auch in notepad.exe auf.

Mfg
FAlter
Angehängte Dateien
Dateityp: zip lfrflbrb_206.zip (146,8 KB, 18x aufgerufen)
Felix Alter
  Mit Zitat antworten Zitat