Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   "disconnected session" beim debuggen eines 64 bit Explorer-Plugins (XE2) (https://www.delphipraxis.net/165041-disconnected-session-beim-debuggen-eines-64-bit-explorer-plugins-xe2.html)

CCRDude 12. Dez 2011 10:23

"disconnected session" beim debuggen eines 64 bit Explorer-Plugins (XE2)
 
Hallo,

Ich teste gerade mal die XE2-Trial, da mein FreePascal 64-bit-Kompilat eines Explorer-Plugins in gewissen Konstellationen Fehler verursacht.

Dazu habe ich die XE2-Trial installiert, sowie die JCL (wird von Teilen meines Codes benötigt). XE2 starte ich elevated (Fehler tritt auch non-elevated auf).

Ein neues Projekt habe ich erstellt, Target platform Win64 gewählt. Zwei minimale Änderungen waren noch notwendig. Als Host TotalCmd64.exe gewählt (64-bit Version des Total Commanders). Danach ein neues Build erstellt, Breakpoints gesetzt, mit F9 gestartet.

Sobald ein Breakpoint erreicht wird, springt die XE2-IDE in der Vordergrund und sagt mir "disconnected session". Details unten.

Normal ausführbare (auch 64-bit) Programme zu debuggen funktioniert problemlos. Das Projekt als 32 bit unter Delphi XE zu debuggen auch.

Mache ich etwas falsch, oder ist der neue Debugger da noch buggy?

(PS: ein Fehler im Debugger mit derselben Meldung soll mit Update 2 behoben sein, das Ticket ist aber noch offen, und der frische Download der Trial ist bei mir bereits Delphi XE2 Update 2)

Code:
[20392D88]{dbkdebugide160.bpl} Debug.TDebugKernel.msgBox (Line 5885, "Debug.pas" + 30) + $0
[20392DAC]{dbkdebugide160.bpl} Debug.TDebugKernel.msgBox (Line 5888, "Debug.pas" + 33) + $11
[12206EB3]{bordbk160.dll} Unknown function at DllUnregisterServer + $5037
[1227B89C]{bordbk160.dll} Unknown function at @isDbkLoggingOn$qv + $619D0
[1227B91B]{bordbk160.dll} Unknown function at @isDbkLoggingOn$qv + $61A4F
[1227C361]{bordbk160.dll} Unknown function at @isDbkLoggingOn$qv + $62495
[1227C5B1]{bordbk160.dll} Unknown function at @isDbkLoggingOn$qv + $626E5
[122AC3D7]{bordbk160.dll} Unknown function at @isDbkLoggingOn$qv + $9250B
[12219D66]{bordbk160.dll} Unknown function at DllUnregisterServer + $17EEA
[122ABFF0]{bordbk160.dll} Unknown function at @isDbkLoggingOn$qv + $92124
[5007E33C]{rtl160.bpl } System.Variants.VarClearDeep (Line 783, "System.Variants.pas" + 21) + $6
[21123DEC]{vclide160.bpl} IDERegIniPropSet.TRegistryPropSet.GetFieldData (Line 199, "IDERegIniPropSet.pas" + 41) + $8E
[12219D66]{bordbk160.dll} Unknown function at DllUnregisterServer + $17EEA
[122AA921]{bordbk160.dll} Unknown function at @isDbkLoggingOn$qv + $90A55
[21E73D3E]{boreditu.dll} C:\BUILDS\TP\INTERMEDIATE\DEBUG\LIB\UTF8\EK_MARK.OBJ.@EditKernel@ek_hide_block$qqrv + $A
[21E73D16]{boreditu.dll} C:\BUILDS\TP\INTERMEDIATE\DEBUG\LIB\UTF8\EK_MARK.OBJ.@$xt$p20HideSpecialBlockUndo + $6
[21E66410]{boreditu.dll} C:\BUILDS\TP\INTERMEDIATE\DEBUG\LIB\UTF8\EK_ENTRY.OBJ.@C5_0 + $1928
[1227C587]{bordbk160.dll} Unknown function at @isDbkLoggingOn$qv + $626BB
[1227C7F0]{bordbk160.dll} Unknown function at @isDbkLoggingOn$qv + $62924
[12206A4B]{bordbk160.dll} Unknown function at DllUnregisterServer + $4BCF
[122A62DC]{bordbk160.dll} Unknown function at @isDbkLoggingOn$qv + $8C410
[122A62E6]{bordbk160.dll} Unknown function at @isDbkLoggingOn$qv + $8C41A
[500430A5]{rtl160.bpl } System.@IntfCopy (Line 29912, "System.pas" + 6) + $0
[20446084]{dbkdebugproide160.bpl} DbkInspector.TDebuggerExpressionInspector.SetupDBKInspector (Line 389, "DbkInspector.pas" + 19) + $22
[500A3DE0]{rtl160.bpl } System.Classes.TInterfaceList.Destroy (Line 4343, "System.Classes.pas" + 0) + $0
[20445C6A]{dbkdebugproide160.bpl} DbkInspector.TDebuggerExpressionInspector.Create (Line 270, "DbkInspector.pas" + 13) + $B
[20454258]{dbkdebugproide160.bpl} DbkDebugProCmd.TDebugProCommands.CreateLocalsInspector (Line 89, "DbkDebugProCmd.pas" + 1) + $1A
[2039ACBC]{dbkdebugide160.bpl} Debug.TDebugger.InspectLocalVariables (Line 9956, "Debug.pas" + 2) + $11
[202E9460]{coreproide160.bpl} LocalVars.TLocalVarsWindow.UpdateInspector (Line 240, "LocalVars.pas" + 18) + $17
[202E97C5]{coreproide160.bpl} LocalVars.TLocalVarsWindow.DebugUpdate (Line 310, "LocalVars.pas" + 0) + $5
[207A91E4]{coreide160.bpl} DebuggerMgr.TProcessEvent.Send (Line 710, "DebuggerMgr.pas" + 2) + $0
[207AD828]{coreide160.bpl} DebuggerMgr.TDebuggerMgr.ProcessStateChanged (Line 2469, "DebuggerMgr.pas" + 7) + $E
[2039D376]{dbkdebugide160.bpl} Debug.TDebugger.DoNotifyProcessStateChanged (Line 11020, "Debug.pas" + 2) + $18
[20FD6745]{designide160.bpl} ToolUtils.ForEach (Line 98, "ToolUtils.pas" + 5) + $F
[2039D2D5]{dbkdebugide160.bpl} Debug.TDebugger.NotifyProcessStateChanged (Line 11012, "Debug.pas" + 27) + $22
[20399962]{dbkdebugide160.bpl} Debug.TProcess.SetProcessState (Line 9391, "Debug.pas" + 4) + $A
[20393C19]{dbkdebugide160.bpl} Debug.TThread.ntfyThread (Line 6366, "Debug.pas" + 162) + $8
[1227C587]{bordbk160.dll} Unknown function at @isDbkLoggingOn$qv + $626BB
[122A67FE]{bordbk160.dll} Unknown function at @isDbkLoggingOn$qv + $8C932
[1227B91B]{bordbk160.dll} Unknown function at @isDbkLoggingOn$qv + $61A4F
[1227C587]{bordbk160.dll} Unknown function at @isDbkLoggingOn$qv + $626BB
[122A36F7]{bordbk160.dll} Unknown function at @isDbkLoggingOn$qv + $8982B
[122AC4CB]{bordbk160.dll} Unknown function at @isDbkLoggingOn$qv + $925FF
[12219D66]{bordbk160.dll} Unknown function at DllUnregisterServer + $17EEA
[1227B8C0]{bordbk160.dll} Unknown function at @isDbkLoggingOn$qv + $619F4
[2075EC17]{coreide160.bpl} EditorForm.TEditWindow.SetSearchWrapIndicator (Line 4523, "EditorForm.pas" + 3) + $1
[207779D1]{coreide160.bpl} EditorControl.TCustomEditControl.UpdateStatus (Line 6860, "EditorControl.pas" + 57) + $5
[1227C7F0]{bordbk160.dll} Unknown function at @isDbkLoggingOn$qv + $62924
[12224257]{bordbk160.dll} Unknown function at @isDbkLoggingOn$qv + $A38B
[211C3682]{vclide160.bpl} IDEVirtualTrees.TBaseVirtualTree.WMChangeState (Line 15726, "IDEVirtualTrees.pas" + 21) + $A
[50332814]{vcl160.bpl } Vcl.Controls.TControl.WndProc (Line 7204, "Vcl.Controls.pas" + 91) + $6
[5033CE91]{vcl160.bpl } Vcl.Controls.TCustomControl.WMPaint (Line 13720, "Vcl.Controls.pas" + 2) + $4
[50332814]{vcl160.bpl } Vcl.Controls.TControl.WndProc (Line 7204, "Vcl.Controls.pas" + 91) + $6
[5045412D]{vcl160.bpl } Vcl.Forms.TApplication.DispatchAction (Line 11359, "Vcl.Forms.pas" + 9) + $A
[50451997]{vcl160.bpl } Vcl.Forms.TApplication.WndProc (Line 9753, "Vcl.Forms.pas" + 98) + $B
[500B5FCC]{rtl160.bpl } System.Classes.MakeObjectInstance (Line 13921, "System.Classes.pas" + 0) + $0
[50337163]{vcl160.bpl } Vcl.Controls.TWinControl.WndProc (Line 9976, "Vcl.Controls.pas" + 152) + $6
[5003D493]{rtl160.bpl } System.TMonitor.TryEnter (Line 14711, "System.pas" + 10) + $0
[5003D008]{rtl160.bpl } System.TMonitor.Enter (Line 14414, "System.pas" + 4) + $2
[5003CEAC]{rtl160.bpl } System.TMonitor.CheckOwningThread (Line 14336, "System.pas" + 2) + $0
[5003D1B2]{rtl160.bpl } System.TMonitor.Exit (Line 14525, "System.pas" + 9) + $7
[5003D1EB]{rtl160.bpl } System.TMonitor.Exit (Line 14539, "System.pas" + 2) + $7
[50313617]{vcl160.bpl } Vcl.Graphics.FreeMemoryContexts (Line 7043, "Vcl.Graphics.pas" + 12) + $8
[503367B8]{vcl160.bpl } Vcl.Controls.TWinControl.MainWndProc (Line 9689, "Vcl.Controls.pas" + 3) + $6
[503367CD]{vcl160.bpl } Vcl.Controls.TWinControl.MainWndProc (Line 9692, "Vcl.Controls.pas" + 6) + $0
[500B5FCC]{rtl160.bpl } System.Classes.MakeObjectInstance (Line 13921, "System.Classes.pas" + 0) + $0
[504524F7]{vcl160.bpl } Vcl.Forms.TApplication.ProcessMessage (Line 10166, "Vcl.Forms.pas" + 25) + $1
[50452532]{vcl160.bpl } Vcl.Forms.TApplication.HandleMessage (Line 10194, "Vcl.Forms.pas" + 1) + $4
[50452865]{vcl160.bpl } Vcl.Forms.TApplication.Run (Line 10331, "Vcl.Forms.pas" + 26) + $3

daywalker9 12. Dez 2011 10:26

AW: "disconnected session" beim debuggen eines 64 bit Explorer-Plugins (XE2)
 
Das Problem war in dem Release und in Update#1 extrem. Mit Update#2 ist dies korrigiert, bist Du auch aktuell was das Update angeht?

CCRDude 12. Dez 2011 11:22

AW: "disconnected session" beim debuggen eines 64 bit Explorer-Plugins (XE2)
 
Siehe mein PS oben :) HAbe ich wohl zu spät reinediert.

Help-About spricht von "Delphi XE2 and C++ Builder XE2 Update 2".

USchuster 13. Dez 2011 22:03

AW: "disconnected session" beim debuggen eines 64 bit Explorer-Plugins (XE2)
 
Bei "disconnected session" handelt es sich nicht um einen konkreten Fehler sondern um verschiedene Fehler mit dem gleichen Symptom. Ein solcher Fehler wird den Beobachtungen nach im 64-Bit Debugger durch bestimmte Codesequenzen oder bestimmte Schritte beim Debuggen ausgelöst.

Am besten wärs wenn Du einen Testfall aus Deinem Plugin erstellst und damit einen QC Eintrag anlegst. Falls Dein Plugin proprietär ist und das Erstellen des Testfalls zu aufwändig, dann gäbe es auch die Möglichkeit einen QC Eintrag ohne den Code des Plugins anzulegen mit dem Hinweis darauf das man Dich für den Code des Plugins kontaktieren soll. Vorher solltest Du jedoch auf Update #3 warten und prüfen ob der Fehler damit immer noch auftritt.

CCRDude 14. Dez 2011 15:11

AW: "disconnected session" beim debuggen eines 64 bit Explorer-Plugins (XE2)
 
Ich evaluiere gerade, ob ein Umstieg auf XE2 lohnt (Weniger 64bit Bugs als FreePascal). D.h. ich habe nur die 30-Tage-Trial. Warten auf Update #3 scheidet also aus.

Ein Minimalprojekt habe ich schon, werde es tatsächlich mal ins QC stellen (ein paar automated reports dazu habe ich schon), danke für den Anstoß. Meine QC-Erfahrungen sind zwar hauptsächlich negativ, aber wer weiß... ;)

USchuster 14. Dez 2011 20:39

AW: "disconnected session" beim debuggen eines 64 bit Explorer-Plugins (XE2)
 
Das klingt ja schon mal gut das Du ein Beispielprojekt hast. Da es sich um einen Fehler in einem neuen Feature handelt ist die Chance gar nicht mal so schlecht das es noch in einem XE2 Update behoben. Wenn der Fehler behoben wird, die Trialversion abgelaufen ist und man nicht einfach so einen neuen Key bekommt, dann hilft sicher der Verweis auf Deinen QC Eintrag.

CCRDude 16. Dez 2011 09:25

AW: "disconnected session" beim debuggen eines 64 bit Explorer-Plugins (XE2)
 
Ich bin mal wieder positiv überrascht, seit Emba daran sitzt, werden Tickets oft recht zügig bearbeitet; dieses hierzu ist innerhalb eines Tages geöffnet worden :)

Bernhard Geyer 16. Dez 2011 09:29

AW: "disconnected session" beim debuggen eines 64 bit Explorer-Plugins (XE2)
 
Zitat:

Zitat von CCRDude (Beitrag 1141729)
Ich bin mal wieder positiv überrascht, seit Emba daran sitzt, werden Tickets oft recht zügig bearbeitet; dieses hierzu ist innerhalb eines Tages geöffnet worden :)

Und wenn sie noch die vielen "verstaubten" Einträge der letzten Jahre (als man bei Borland primär Powerpoint-Präsentationen verkaufen wollte) aufarbeiten wird man restlos glücklich werden :-)

CCRDude 16. Jan 2012 14:23

AW: "disconnected session" beim debuggen eines 64 bit Explorer-Plugins (XE2)
 
Some things never change, wie man so schön sagt.

Ich habe auch unter XE2 SP3 getestet, das daraus gewonnene zusätzliche Wissen (funktioniert auch damit nicht) ergänzt, und die schöne Standardantwort bekommen, dass ich doch bitte für Support zahlen solle.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz