View Issue Details

IDProjectCategoryView StatusLast Update
0016233LazarusIDEpublic2011-12-01 11:25
ReporterMartin FriebeAssigned ToMartin Friebe 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product Version0.9.29 (SVN)Product Build 
Target Version0.9.30Fixed in Version0.9.29 (SVN) 
Summary0016233: Debugger causes "cannot focus a disabled control"
DescriptionStep into a procedure, that is in another, not yet loaded unit (preferable reasonable big unit, so it takes time to load debugger-line-info (blue dots))

press F8, before the unit is fully loaded
=> cannot focus a disabled control

The F8 probably must step out of the new file

---
What can not be seen in the Stack-trace, but what I guess is the cause of the issue:

the first F7 (step into) is a key-press that goes to synedit

synedit.keydown
=> goes via SourcEditor and main
=> to Debugger Step into
=> Calls Main DOOPENEDITORFILE
-- Creates a new Notebook Tab (and sets PageIndex to the new tab)
-- TSourceNotebook.NewFile : line 6123: Result.CodeBuffer:=ASource;
 while loading the source, the line-info is needed (FillEdxecutionMarks)
=> During this the debugger does Application ProcessMessages
===> not the 2nd keypress F8 is handled
----(while SourceEditor is still in the process of opening a file)
----The tab is changed to another editor
<===
-- The original TSourceNotebook.NewFile continues
-- It tries to set the Focus to the new editor

Well and that fails, because the Editor is no longer on the visible tab



Additional Information
#0 fpc_raiseexception(0xf2f9e4, 0xd71c218, 0x921e560) at ..\inc\except.inc:191
0000001 SETACTIVECONTROL(0xb52fd00, 0xccc34b0) at include\customform.inc:1639
0000002 FOCUSCONTROL(0xb52fd00, 0xccc34b0) at include\customform.inc:132
0000003 SETFOCUS(0xccc34b0) at include\wincontrol.inc:5379
0000004 FOCUSEDITOR(0xd221620) at sourceeditor.pp:2402
0000005 FOCUSEDITOR(0xb52fd00) at sourceeditor.pp:6204
0000006 DOOPENFILEINSOURCEEDITOR(0x1dbf60, 0xb026128, -1, -1, [OFONLYIFEXISTS, OFREGULARFILE]) at main.pp:7725
0000007 DOOPENEDITORFILE(0x1dbf60, 0xd48fff8 'C:\FPC\SVN\trunc\rtl\inc\heap.inc', -1, -1, 0x0, [OFONLYIFEXISTS, OFREGULARFILE]) at main.pp:8610
0000008 DOOPENEDITORFILE(0x1dbf60, 0xd48fff8 'C:\FPC\SVN\trunc\rtl\inc\heap.inc', -1, -1, [OFONLYIFEXISTS, OFREGULARFILE]) at main.pp:8335
0000009 DOJUMPTOCODEPOS(0x1dbf60, 0xd2212e0, 0x0, 0xd31f678, 1, 237, -1, true, true, false) at main.pp:13663
0000010 DEBUGGERCURRENTLINE(0xa2b1ca8, 0xb6e0aa0, @0x921e958: {ADDRESS = 4295098, FUNCNAME = 0xd621100 'GETMEM', SRCFILE = 0xd621280 '..\inc\heap.inc', SRCFULLNAME = 0xd4038c0 'C:\FPC\SVN\trunc\rtl\win32\..\inc\heap.inc', SRCLINE = 237}) at debugmanager.pas:1655
0000011 DOCURRENT(0xb6e0aa0, @0x921e958: {ADDRESS = 4295098, FUNCNAME = 0xd621100 'GETMEM', SRCFILE = 0xd621280 '..\inc\heap.inc', SRCFULLNAME = 0xd4038c0 'C:\FPC\SVN\trunc\rtl\win32\..\inc\heap.inc', SRCLINE = 237}) at ..\debugger\debugger.pp:1638
0000012 PROCESSFRAME(0xb6e0aa0, 0xd24a9c8 '{addr="0x004189ba",func="GETMEM",args=[{name="P",value="@0x921f9e0"},{name="SIZE",value="56"}],file="../inc/heap.inc",fullname="C:/FPC/SVN/trunc/rtl/win32/../inc/heap.inc",line="237"}') at ..\debugger\gdbmidebugger.pp:3480
0000013 PROCESSSTOPPED(0xb6e0aa0, 0xb751a38 ',reason="end-stepping-range",frame={addr="0x004189ba",func="GETMEM",args=[{name="P",value="@0x921f9e0"},{name="SIZE",value="56"}],file="../inc/heap.inc",fullname="C:/FPC/SVN/trunc/rtl/win32/../inc/hea'..., false) at ..\debugger\gdbmidebugger.pp:3914
0000014 EXECUTECOMMANDFULL(0xb6e0aa0, 0x106b828 '-symbol-list-lines %s', @0x921eba0: 0x921eba0, 0, [CFIGNOREERROR], @0x921eba8: {Proc = {procedure (POINTER, TGDBMIEXECRESULT, LONGINT)} 0x921eba8, Self = 0xb1a57a8}, 220454968, @0x921eb60: {STATE = DSERROR, VALUES = 0xd6257e8 ',msg="mi_cmd_symbol_list_lines: Unknown source file name."', FLAGS = []}) at ..\debugger\gdbmidebugger.pp:1378
0000015 EXECUTECOMMAND(0xb6e0aa0, 0x106b828 '-symbol-list-lines %s', @0x921eba0: 0x921eba0, 0, [CFIGNOREERROR], @0x921eba8: {Proc = {procedure (POINTER, TGDBMIEXECRESULT, LONGINT)} 0x921eba8, Self = 0xb1a57a8}, 220454968) at ..\debugger\gdbmidebugger.pp:1305
0000016 REQUEST(0xb1a57a8, 0xd48fff8 'C:\FPC\SVN\trunc\rtl\inc\heap.inc') at ..\debugger\gdbmidebugger.pp:764
0000017 REQUEST(0xb423d68, 0xd48fff8 'C:\FPC\SVN\trunc\rtl\inc\heap.inc') at debugmanager.pas:472
0000018 FILLEXECUTIONMARKS(0xd2212e0) at sourceeditor.pp:4326
0000019 SETCODEBUFFER(0xd2212e0, 0xd31f678) at sourceeditor.pp:3595
0000020 NEWFILE(0xb52fd00, 0xd605280 'heap.inc', 0xd31f678, false, 0x0) at sourceeditor.pp:6123
0000021 DOOPENFILEINSOURCEEDITOR(0x1dbf60, 0xb026128, -1, -1, [OFONLYIFEXISTS, OFREGULARFILE]) at main.pp:7665
0000022 DOOPENEDITORFILE(0x1dbf60, 0xd48fff8 'C:\FPC\SVN\trunc\rtl\inc\heap.inc', -1, -1, 0x0, [OFONLYIFEXISTS, OFREGULARFILE]) at main.pp:8610
0000023 DOOPENEDITORFILE(0x1dbf60, 0xd48fff8 'C:\FPC\SVN\trunc\rtl\inc\heap.inc', -1, -1, [OFONLYIFEXISTS, OFREGULARFILE]) at main.pp:8335
0000024 DOJUMPTOCODEPOS(0x1dbf60, 0xd2224c0, 0xb610200, 0xd31f678, 1, 236, -1, true, true, false) at main.pp:13663
0000025 DEBUGGERCURRENTLINE(0xa2b1ca8, 0xb6e0aa0, @0x921f0d0: {ADDRESS = 4295088, FUNCNAME = 0xd468960 'GETMEM', SRCFILE = 0xd604e60 '..\inc\heap.inc', SRCFULLNAME = 0xd4026c0 'C:\FPC\SVN\trunc\rtl\win32\..\inc\heap.inc', SRCLINE = 236}) at debugmanager.pas:1655
0000026 DOCURRENT(0xb6e0aa0, @0x921f0d0: {ADDRESS = 4295088, FUNCNAME = 0xd468960 'GETMEM', SRCFILE = 0xd604e60 '..\inc\heap.inc', SRCFULLNAME = 0xd4026c0 'C:\FPC\SVN\trunc\rtl\win32\..\inc\heap.inc', SRCLINE = 236}) at ..\debugger\debugger.pp:1638
0000027 PROCESSFRAME(0xb6e0aa0, 0xd24a478 '{addr="0x004189b0",func="GETMEM",args=[{name="P",value="@0x1063260"},{name="SIZE",value="153221600"}],file="../inc/heap.inc",fullname="C:/FPC/SVN/trunc/rtl/win32/../inc/heap.inc",line="236"}') at ..\debugger\gdbmidebugger.pp:3480
0000028 PROCESSSTOPPED(0xb6e0aa0, 0xb751778 ',reason="end-stepping-range",frame={addr="0x004189b0",func="GETMEM",args=[{name="P",value="@0x1063260"},{name="SIZE",value="153221600"}],file="../inc/heap.inc",fullname="C:/FPC/SVN/trunc/rtl/win32/../'..., false) at ..\debugger\gdbmidebugger.pp:3914
0000029 EXECUTECOMMANDFULL(0xb6e0aa0, 0x106c544 '-exec-step', @0x921f2b0: 0x921f2b0, -1, [CFEXTERNAL], @0x921f2b8: {Proc = {procedure (POINTER, TGDBMIEXECRESULT, LONGINT)} 0x921f2b8, Self = 0x0}, 0, @0x921f2e8: {STATE = DSNONE, VALUES = 0x0, FLAGS = []}) at ..\debugger\gdbmidebugger.pp:1378
0000030 EXECUTECOMMAND(0xb6e0aa0, 0x106c544 '-exec-step', [CFEXTERNAL]) at ..\debugger\gdbmidebugger.pp:1274
0000031 GDBSTEPINTO(0xb6e0aa0) at ..\debugger\gdbmidebugger.pp:2925
0000032 REQUESTCOMMAND(0xb6e0aa0, DCSTEPINTO, @0x921f5a8: 0x921f5a8, -1) at ..\debugger\gdbmidebugger.pp:3939
0000033 REQCMD(0xb6e0aa0, DCSTEPINTO, @0x921f5a8: 0x921f5a8, -1) at ..\debugger\debugger.pp:1800
0000034 STEPINTO(0xb6e0aa0) at ..\debugger\debugger.pp:1896
0000035 DOSTEPINTOPROJECT(0xa2b1ca8) at debugmanager.pas:2348
0000036 PROCESSCOMMAND(0xa2b1ca8, 1407, @0x921f6cc: true) at debugmanager.pas:2406
0000037 ONPROCESSIDECOMMAND(0x1dbf60, 0xb52fd00, 1407, @0x921f6cc: true) at main.pp:3105
0000038 PROCESSPARENTCOMMAND(0xb52fd00, 0xd2224c0, @0x921f760: 1407, @0x921f74c: '', 0x0, @0x921f6cc: true) at sourceeditor.pp:6507
0000039 PROCESSUSERCOMMAND(0xd2224c0, 0xde77b80, @0x921f760: 1407, @0x921f74c: '', 0x0) at sourceeditor.pp:2723
0000040 DOONPROCESSCOMMAND(0xde77b80, @0x921f760: 1407, @0x921f74c: '', 0x0) at synedit.pp:6304
0000041 COMMANDPROCESSOR(0xde77b80, 1407, '', 0x0) at synedit.pp:5672
0000042 KEYDOWN(0xde77b80, @0x921fbe4: 0, []) at synedit.pp:2239
0000043 KEYDOWNBEFOREINTERFACE(0xde77b80, @0x921fbe4: 0, []) at include\wincontrol.inc:5398
0000044 DOKEYDOWNBEFOREINTERFACE(0xde77b80, @0x921fbe0: {MSG = 48384, CHARCODE = 0, UNUSED = 21845, KEYDATA = 4259841, RESULT = 0}) at include\wincontrol.inc:5535
0000045 CNKEYDOWN(0xde77b80, @0x921fbe0: {MSG = 48384, CHARCODE = 0, UNUSED = 21845, KEYDATA = 4259841, RESULT = 0}) at include\wincontrol.inc:6787


--------------------------------------------------
Stacktrace 2:
#0 WAITFORHANDLES(@0x921e988: 0x921e988, 0) at ..\debugger\cmdlinedebugger.pp:165
0000001 READLINE(0xb620b90, false) at ..\debugger\cmdlinedebugger.pp:340
0000002 READLINE(0xb620b90) at ..\debugger\cmdlinedebugger.pp:275
0000003 PROCESSRESULT(0xb620b90, @0x921eae8: {STATE = DSNONE, VALUES = 0x0, FLAGS = []}) at ..\debugger\gdbmidebugger.pp:3577
0000004 EXECUTECOMMANDFULL(0xb620b90, 0x106b828 '-symbol-list-lines %s', @0x921eba0: 0x921eba0, 0, [CFIGNOREERROR], @0x921eba8: {Proc = {procedure (POINTER, TGDBMIEXECRESULT, LONGINT)} 0x921eba8, Self = 0xb0d32e8}, 221239104, @0x921eb60: {STATE = DSNONE, VALUES = 0x0, FLAGS = []}) at ..\debugger\gdbmidebugger.pp:1356
0000005 EXECUTECOMMAND(0xb620b90, 0x106b828 '-symbol-list-lines %s', @0x921eba0: 0x921eba0, 0, [CFIGNOREERROR], @0x921eba8: {Proc = {procedure (POINTER, TGDBMIEXECRESULT, LONGINT)} 0x921eba8, Self = 0xb0d32e8}, 221239104) at ..\debugger\gdbmidebugger.pp:1305
0000006 REQUEST(0xb0d32e8, 0xd287720 'C:\FPC\SVN\trunc\rtl\inc\objpas.inc') at ..\debugger\gdbmidebugger.pp:764
0000007 REQUEST(0xb3142a8, 0xd287720 'C:\FPC\SVN\trunc\rtl\inc\objpas.inc') at debugmanager.pas:472
0000008 FILLEXECUTIONMARKS(0xd202be8) at sourceeditor.pp:4326
0000009 SETCODEBUFFER(0xd202be8, 0xd692b90) at sourceeditor.pp:3595
0000010 NEWFILE(0xb41b130, 0xe4ab1a0 'objpas.inc', 0xd692b90, false, 0x0) at sourceeditor.pp:6123
0000011 DOOPENFILEINSOURCEEDITOR(0x2ebf60, 0xaf16228, -1, -1, [OFONLYIFEXISTS, OFREGULARFILE]) at main.pp:7665
0000012 DOOPENEDITORFILE(0x2ebf60, 0xd287720 'C:\FPC\SVN\trunc\rtl\inc\objpas.inc', -1, -1, 0x0, [OFONLYIFEXISTS, OFREGULARFILE]) at main.pp:8610
0000013 DOOPENEDITORFILE(0x2ebf60, 0xd287720 'C:\FPC\SVN\trunc\rtl\inc\objpas.inc', -1, -1, [OFONLYIFEXISTS, OFREGULARFILE]) at main.pp:8335
0000014 DOJUMPTOCODEPOS(0x2ebf60, 0xb0f79a8, 0xb502d18, 0xd692b90, 1, 266, -1, true, true, false) at main.pp:13663
0000015 DEBUGGERCURRENTLINE(0xa6e1ca8, 0xb620b90, @0x921f0d0: {ADDRESS = 4274496, FUNCNAME = 0xe4aa300 'CREATE', SRCFILE = 0xe4b3268 '..\inc\objpas.inc', SRCFULLNAME = 0xb2bc928 'C:\FPC\SVN\trunc\rtl\win32\..\inc\objpas.inc', SRCLINE = 266}) at debugmanager.pas:1655
0000016 DOCURRENT(0xb620b90, @0x921f0d0: {ADDRESS = 4274496, FUNCNAME = 0xe4aa300 'CREATE', SRCFILE = 0xe4b3268 '..\inc\objpas.inc', SRCFULLNAME = 0xb2bc928 'C:\FPC\SVN\trunc\rtl\win32\..\inc\objpas.inc', SRCLINE = 266}) at ..\debugger\debugger.pp:1638
0000017 PROCESSFRAME(0xb620b90, 0xd2992c8 '{addr="0x00413940",func="CREATE",args=[{name="this",value="0x0"},{name="vmt",value="0x10632f4"}],file="../inc/objpas.inc",fullname="C:/FPC/SVN/trunc/rtl/win32/../inc/objpas.inc",line="266"}') at ..\debugger\gdbmidebugger.pp:3480
0000018 PROCESSSTOPPED(0xb620b90, 0xb689b10 ',reason="end-stepping-range",frame={addr="0x00413940",func="CREATE",args=[{name="this",value="0x0"},{name="vmt",value="0x10632f4"}],file="../inc/objpas.inc",fullname="C:/FPC/SVN/trunc/rtl/win32/../inc'..., false) at ..\debugger\gdbmidebugger.pp:3914
0000019 EXECUTECOMMANDFULL(0xb620b90, 0x106c544 '-exec-step', @0x921f2b0: 0x921f2b0, -1, [CFEXTERNAL], @0x921f2b8: {Proc = {procedure (POINTER, TGDBMIEXECRESULT, LONGINT)} 0x921f2b8, Self = 0x0}, 0, @0x921f2e8: {STATE = DSNONE, VALUES = 0x0, FLAGS = []}) at ..\debugger\gdbmidebugger.pp:1378
0000020 EXECUTECOMMAND(0xb620b90, 0x106c544 '-exec-step', [CFEXTERNAL]) at ..\debugger\gdbmidebugger.pp:1274
0000021 GDBSTEPINTO(0xb620b90) at ..\debugger\gdbmidebugger.pp:2925
0000022 REQUESTCOMMAND(0xb620b90, DCSTEPINTO, @0x921f5a8: 0x921f5a8, -1) at ..\debugger\gdbmidebugger.pp:3939
0000023 REQCMD(0xb620b90, DCSTEPINTO, @0x921f5a8: 0x921f5a8, -1) at ..\debugger\debugger.pp:1800
0000024 STEPINTO(0xb620b90) at ..\debugger\debugger.pp:1896
0000025 DOSTEPINTOPROJECT(0xa6e1ca8) at debugmanager.pas:2348
0000026 PROCESSCOMMAND(0xa6e1ca8, 1407, @0x921f6cc: true) at debugmanager.pas:2406
0000027 ONPROCESSIDECOMMAND(0x2ebf60, 0xb41b130, 1407, @0x921f6cc: true) at main.pp:3105
0000028 PROCESSPARENTCOMMAND(0xb41b130, 0xb0f79a8, @0x921f760: 1407, @0x921f74c: '', 0x0, @0x921f6cc: true) at sourceeditor.pp:6507
0000029 PROCESSUSERCOMMAND(0xb0f79a8, 0xb3ff6e0, @0x921f760: 1407, @0x921f74c: '', 0x0) at sourceeditor.pp:2723
0000030 DOONPROCESSCOMMAND(0xb3ff6e0, @0x921f760: 1407, @0x921f74c: '', 0x0) at synedit.pp:6304
0000031 COMMANDPROCESSOR(0xb3ff6e0, 1407, '', 0x0) at synedit.pp:5672
0000032 KEYDOWN(0xb3ff6e0, @0x921fbe4: 0, []) at synedit.pp:2239
TagsNo tags attached.
Fixed in Revision28163
LazTarget1.0
Widgetset
Attached Files

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2010-04-09 00:43 Martin Friebe New Issue
2010-04-09 00:43 Martin Friebe LazTarget => -
2010-10-29 15:06 Vincent Snijders LazTarget - => 1.0
2010-10-29 15:06 Vincent Snijders Status new => acknowledged
2010-10-29 15:06 Vincent Snijders Target Version => 1.0.0
2010-11-09 15:21 Martin Friebe Status acknowledged => assigned
2010-11-09 15:21 Martin Friebe Assigned To => Martin Friebe
2010-11-09 15:22 Martin Friebe Fixed in Revision => 28163
2010-11-09 15:22 Martin Friebe Status assigned => resolved
2010-11-09 15:22 Martin Friebe Fixed in Version => 0.9.29 (SVN)
2010-11-09 15:22 Martin Friebe Resolution open => fixed
2010-11-09 15:22 Martin Friebe Target Version 1.0.0 => 0.9.30
2011-12-01 11:25 Marc Weustink Status resolved => closed