ide: remove debugger option dialog and menu item

git-svn-id: trunk@17691 -
This commit is contained in:
paul 2008-12-05 09:02:28 +00:00
parent dbb79626c8
commit 8f93dfa528
7 changed files with 2 additions and 1250 deletions

3
.gitattributes vendored
View File

@ -1590,9 +1590,6 @@ debugger/dbgoutputform.pp svneol=native#text/pascal
debugger/dbgutils.pp svneol=native#text/pascal
debugger/debugger.pp svneol=native#text/pascal
debugger/debuggerdlg.pp svneol=native#text/pascal
debugger/debugoptionsfrm.lfm svneol=native#text/plain
debugger/debugoptionsfrm.lrs svneol=native#text/pascal
debugger/debugoptionsfrm.pas svneol=native#text/pascal
debugger/evaluatedlg.lfm svneol=native#text/plain
debugger/evaluatedlg.lrs svneol=native#text/pascal
debugger/evaluatedlg.pp svneol=native#text/pascal

View File

@ -1,550 +0,0 @@
object DebuggerOptionsForm: TDebuggerOptionsForm
Left = 410
Height = 443
Top = 196
Width = 482
ActiveControl = cmbDebuggerType
BorderIcons = [biSystemMenu]
Caption = 'Debugger Options'
ClientHeight = 443
ClientWidth = 482
OnCreate = DebuggerOptionsFormCREATE
OnDestroy = DebuggerOptionsFormDESTROY
ParentFont = False
Position = poScreenCenter
LCLVersion = '0.9.25'
object nbDebugOptions: TNotebook
AnchorSideBottom.Control = BtnPanel
Height = 408
Width = 482
Align = alTop
Anchors = [akTop, akLeft, akRight, akBottom]
PageIndex = 3
TabOrder = 0
object pgGeneral: TPage
Caption = 'pgGeneral'
ClientWidth = 474
ClientHeight = 382
object gbDebuggerType: TGroupBox
Left = 6
Height = 80
Top = 6
Width = 462
Align = alTop
AutoSize = True
BorderSpacing.Around = 6
Caption = 'Debugger type and path'
ClientHeight = 80
ClientWidth = 462
ParentCtl3D = False
TabOrder = 0
object cmbDebuggerType: TComboBox
AnchorSideLeft.Control = gbDebuggerType
AnchorSideTop.Control = gbDebuggerType
AnchorSideRight.Control = gbDebuggerType
AnchorSideRight.Side = asrBottom
Left = 6
Height = 21
Top = 6
Width = 446
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6
ItemHeight = 13
OnEditingDone = cmbDebuggerTypeCHANGE
OnSelect = cmbDebuggerTypeCHANGE
ParentCtl3D = False
TabOrder = 0
end
object cmbDebuggerPath: TComboBox
AnchorSideLeft.Control = gbDebuggerType
AnchorSideTop.Control = cmbDebuggerType
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = cmdOpenDebuggerPath
Left = 6
Height = 21
Top = 33
Width = 417
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6
ItemHeight = 13
ParentCtl3D = False
TabOrder = 1
end
object cmdOpenDebuggerPath: TButton
AnchorSideTop.Control = cmbDebuggerPath
AnchorSideRight.Control = gbDebuggerType
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = cmbDebuggerPath
AnchorSideBottom.Side = asrBottom
Left = 429
Height = 21
Top = 33
Width = 23
Anchors = [akTop, akRight, akBottom]
BorderSpacing.Right = 6
Caption = '...'
OnClick = cmdOpenDebuggerPathCLICK
TabOrder = 2
end
end
object gbAdditionalSearchPath: TGroupBox
AnchorSideLeft.Control = pgGeneral
AnchorSideTop.Control = gbDebuggerType
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = pgGeneral
AnchorSideRight.Side = asrBottom
Left = 6
Height = 55
Top = 92
Width = 462
Align = alTop
AutoSize = True
BorderSpacing.Around = 6
Caption = 'Additional search path'
ClientHeight = 55
ClientWidth = 462
ParentCtl3D = False
TabOrder = 1
object txtAdditionalPath: TEdit
AnchorSideLeft.Control = gbAdditionalSearchPath
AnchorSideTop.Control = gbAdditionalSearchPath
AnchorSideRight.Control = cmdOpenAdditionalPath
Left = 6
Height = 25
Top = 6
Width = 417
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6
TabOrder = 0
end
object cmdOpenAdditionalPath: TButton
AnchorSideTop.Control = txtAdditionalPath
AnchorSideRight.Control = gbAdditionalSearchPath
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = txtAdditionalPath
AnchorSideBottom.Side = asrBottom
Left = 429
Height = 25
Top = 6
Width = 23
Anchors = [akTop, akRight, akBottom]
BorderSpacing.Right = 6
Caption = '...'
OnClick = cmdOpenAdditionalPathClick
TabOrder = 1
end
end
object gbDebuggerSpecific: TGroupBox
AnchorSideLeft.Control = pgGeneral
AnchorSideTop.Control = gcbDebuggerGeneralOptions
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = pgGeneral
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = pgGeneral
AnchorSideBottom.Side = asrBottom
Left = 6
Height = 161
Top = 215
Width = 462
Align = alClient
BorderSpacing.Around = 6
Caption = 'Debugger specific options (depends on type of debugger)'
ClientHeight = 161
ClientWidth = 462
ParentCtl3D = False
TabOrder = 2
object pnlDebugSpecific: TPanel
Left = 6
Height = 131
Top = 6
Width = 446
Align = alClient
BorderSpacing.Around = 6
BevelOuter = bvNone
BorderWidth = 4
FullRepaint = False
TabOrder = 0
TabStop = True
end
end
object gcbDebuggerGeneralOptions: TCheckGroup
AnchorSideLeft.Control = pgGeneral
AnchorSideTop.Control = gbAdditionalSearchPath
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = pgGeneral
AnchorSideRight.Side = asrBottom
Left = 6
Height = 56
Top = 153
Width = 462
Align = alTop
AutoFill = True
BorderSpacing.Around = 6
Caption = 'Debugger general options'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
TabOrder = 3
end
end
object pgEventLog: TPage
Caption = 'pgEventLog'
ClientWidth = 474
ClientHeight = 382
object gbGeneral: TGroupBox
Left = 6
Height = 132
Top = 6
Width = 462
Align = alTop
BorderSpacing.Around = 6
Caption = 'General'
ClientHeight = 132
ClientWidth = 462
ParentCtl3D = False
TabOrder = 0
object chkClearLogOnRun: TCheckBox
Left = 4
Height = 19
Top = 5
Width = 102
Caption = 'Clear log on run'
TabOrder = 0
end
object chkLimitLinecount: TCheckBox
Left = 4
Height = 19
Top = 29
Width = 106
Caption = 'Limit linecount to'
TabOrder = 1
end
object seLimitLinecount: TSpinEdit
Left = 46
Height = 20
Top = 54
Width = 82
Enabled = False
TabOrder = 2
end
end
object gbMessages: TGroupBox
Left = 6
Height = 232
Top = 144
Width = 462
Align = alClient
BorderSpacing.Around = 6
Caption = 'Messages'
ClientHeight = 232
ClientWidth = 462
Enabled = False
ParentCtl3D = False
TabOrder = 1
object chkMessagesBreakpoint: TCheckBox
Left = 4
Height = 19
Top = 5
Width = 77
AllowGrayed = True
Caption = 'Breakpoint'
TabOrder = 0
end
object chkMessagesProcess: TCheckBox
Left = 4
Height = 19
Top = 29
Width = 63
AllowGrayed = True
Caption = 'Process'
TabOrder = 1
end
object chkMessagesThread: TCheckBox
Left = 4
Height = 19
Top = 53
Width = 60
AllowGrayed = True
Caption = 'Thread'
TabOrder = 2
end
object chkMessagesModule: TCheckBox
Left = 4
Height = 19
Top = 77
Width = 60
AllowGrayed = True
Caption = 'Module'
TabOrder = 3
end
object chkMessagesOutput: TCheckBox
Left = 4
Height = 19
Top = 101
Width = 60
AllowGrayed = True
Caption = 'Output'
TabOrder = 4
end
object chkMessagesWindow: TCheckBox
Left = 4
Height = 19
Top = 125
Width = 64
AllowGrayed = True
Caption = 'Window'
TabOrder = 5
end
object chkMessagesInterface: TCheckBox
Left = 4
Height = 19
Top = 149
Width = 71
AllowGrayed = True
Caption = 'Interface'
TabOrder = 6
end
end
end
object pgExceptions: TPage
Caption = 'pgExceptions'
ClientWidth = 474
ClientHeight = 382
object bgIgnoreExceptions: TGroupBox
Left = 6
Height = 345
Top = 6
Width = 462
Align = alClient
BorderSpacing.Around = 6
Caption = 'Ignore these exceptions'
ClientHeight = 345
ClientWidth = 462
ParentCtl3D = False
TabOrder = 0
object clbExceptions: TCheckListBox
AnchorSideRight.Side = asrBottom
Left = 6
Height = 256
Top = 6
Width = 446
Align = alTop
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Around = 6
OnClick = clbExceptionsCLICK
TabOrder = 0
end
object cmdExceptionAdd: TBitBtn
AnchorSideRight.Control = cmdExceptionRemove
AnchorSideBottom.Control = bgIgnoreExceptions
AnchorSideBottom.Side = asrBottom
Left = 296
Height = 23
Top = 298
Width = 75
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Around = 6
Caption = 'Add'
Constraints.MinWidth = 75
NumGlyphs = 0
OnClick = cmdExceptionAddCLICK
TabOrder = 1
end
object cmdExceptionRemove: TBitBtn
AnchorSideRight.Control = bgIgnoreExceptions
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = bgIgnoreExceptions
AnchorSideBottom.Side = asrBottom
Left = 377
Height = 23
Top = 298
Width = 75
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Around = 6
Caption = 'Remove'
Constraints.MinWidth = 75
Enabled = False
NumGlyphs = 0
OnClick = cmdExceptionRemoveCLICK
TabOrder = 2
end
end
object chkBreakOnException: TCheckBox
Left = 6
Height = 19
Top = 357
Width = 462
Align = alBottom
AllowGrayed = True
Anchors = [akLeft, akBottom]
BorderSpacing.Around = 6
Caption = 'Break on Lazarus Exceptions'
TabOrder = 1
end
end
object pgSignals: TPage
Caption = 'pgSignals'
ClientWidth = 474
ClientHeight = 382
object gbSignals: TGroupBox
Left = 6
Height = 370
Top = 6
Width = 462
Align = alClient
BorderSpacing.Around = 6
Caption = 'Signals'
ClientHeight = 352
ClientWidth = 458
ParentCtl3D = False
TabOrder = 0
object lvSignals: TListView
Left = 6
Height = 292
Top = 6
Width = 446
Align = alTop
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Around = 6
Columns = <
item
Caption = 'Name'
Width = 200
end
item
Caption = 'ID'
end
item
Caption = 'Handled by'
Width = 75
end
item
Caption = 'Resume'
Width = 107
end>
PopupMenu = popSignal
TabOrder = 0
ViewStyle = vsReport
end
object cmdSignalRemove: TBitBtn
AnchorSideRight.Control = gbSignals
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = gbSignals
AnchorSideBottom.Side = asrBottom
Left = 377
Height = 23
Top = 323
Width = 75
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Around = 6
Caption = 'Remove'
Constraints.MinWidth = 75
Enabled = False
NumGlyphs = 0
TabOrder = 1
end
object cmdSignalAdd: TBitBtn
AnchorSideRight.Control = cmdSignalRemove
AnchorSideBottom.Control = gbSignals
AnchorSideBottom.Side = asrBottom
Left = 296
Height = 23
Top = 323
Width = 75
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Around = 6
Caption = 'Add'
Constraints.MinWidth = 75
NumGlyphs = 0
TabOrder = 2
end
end
end
end
object BtnPanel: TPanel
Height = 35
Top = 408
Width = 482
Align = alBottom
AutoSize = True
BevelOuter = bvNone
ClientHeight = 35
ClientWidth = 482
TabOrder = 1
object cmdOK: TBitBtn
AnchorSideBottom.Side = asrBottom
Left = 320
Height = 23
Top = 6
Width = 75
Align = alRight
AutoSize = True
BorderSpacing.Around = 6
Caption = '&OK'
Constraints.MinWidth = 75
Default = True
Kind = bkOK
NumGlyphs = 0
OnClick = cmdOKCLICK
TabOrder = 0
end
object cmdCancel: TBitBtn
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Side = asrBottom
Left = 401
Height = 23
Top = 6
Width = 75
Align = alRight
AutoSize = True
BorderSpacing.Around = 6
Cancel = True
Caption = 'Cancel'
Constraints.MinWidth = 75
Kind = bkCancel
ModalResult = 2
NumGlyphs = 0
TabOrder = 1
end
end
object popSignal: TPopupMenu
left = 8
top = 448
object mnuHandledByProgram: TMenuItem
AutoCheck = True
Caption = 'Handled by Program'
GroupIndex = 1
RadioItem = True
end
object mnuiHandledByDebugger: TMenuItem
AutoCheck = True
Caption = 'Handled by Debugger'
GroupIndex = 1
RadioItem = True
end
object N1: TMenuItem
Caption = '-'
end
object mnuResumeHandled: TMenuItem
AutoCheck = True
Caption = 'Resume Handled'
GroupIndex = 2
RadioItem = True
end
object mnuResumeUnhandled: TMenuItem
AutoCheck = True
Caption = 'Resume Unhandled'
GroupIndex = 2
RadioItem = True
end
end
end

View File

@ -1,171 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TDebuggerOptionsForm','FORMDATA',[
'TPF0'#20'TDebuggerOptionsForm'#19'DebuggerOptionsForm'#4'Left'#3#154#1#6'Hei'
+'ght'#3#187#1#3'Top'#3#196#0#5'Width'#3#226#1#13'ActiveControl'#7#15'cmbDebu'
+'ggerType'#11'BorderIcons'#11#12'biSystemMenu'#0#7'Caption'#6#16'Debugger Op'
+'tions'#12'ClientHeight'#3#187#1#11'ClientWidth'#3#226#1#8'OnCreate'#7#25'De'
+'buggerOptionsFormCREATE'#9'OnDestroy'#7#26'DebuggerOptionsFormDESTROY'#10'P'
+'arentFont'#8#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#6'0.9.25'#0#9
+'TNotebook'#14'nbDebugOptions'#24'AnchorSideBottom.Control'#7#8'BtnPanel'#6
+'Height'#3#152#1#5'Width'#3#226#1#5'Align'#7#5'alTop'#7'Anchors'#11#5'akTop'
+#6'akLeft'#7'akRight'#8'akBottom'#0#9'PageIndex'#2#3#8'TabOrder'#2#0#0#5'TPa'
+'ge'#9'pgGeneral'#7'Caption'#6#9'pgGeneral'#11'ClientWidth'#3#218#1#12'Clien'
+'tHeight'#3'~'#1#0#9'TGroupBox'#14'gbDebuggerType'#4'Left'#2#6#6'Height'#2'P'
+#3'Top'#2#6#5'Width'#3#206#1#5'Align'#7#5'alTop'#8'AutoSize'#9#20'BorderSpac'
+'ing.Around'#2#6#7'Caption'#6#22'Debugger type and path'#12'ClientHeight'#2
+'P'#11'ClientWidth'#3#206#1#11'ParentCtl3D'#8#8'TabOrder'#2#0#0#9'TComboBox'
+#15'cmbDebuggerType'#22'AnchorSideLeft.Control'#7#14'gbDebuggerType'#21'Anch'
+'orSideTop.Control'#7#14'gbDebuggerType'#23'AnchorSideRight.Control'#7#14'gb'
+'DebuggerType'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'
+#2#21#3'Top'#2#6#5'Width'#3#190#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'
+#0#20'BorderSpacing.Around'#2#6#10'ItemHeight'#2#13#13'OnEditingDone'#7#21'c'
+'mbDebuggerTypeCHANGE'#8'OnSelect'#7#21'cmbDebuggerTypeCHANGE'#11'ParentCtl3'
+'D'#8#8'TabOrder'#2#0#0#0#9'TComboBox'#15'cmbDebuggerPath'#22'AnchorSideLeft'
+'.Control'#7#14'gbDebuggerType'#21'AnchorSideTop.Control'#7#15'cmbDebuggerTy'
+'pe'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#19
+'cmdOpenDebuggerPath'#4'Left'#2#6#6'Height'#2#21#3'Top'#2'!'#5'Width'#3#161#1
+#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'#2#6
+#10'ItemHeight'#2#13#11'ParentCtl3D'#8#8'TabOrder'#2#1#0#0#7'TButton'#19'cmd'
+'OpenDebuggerPath'#21'AnchorSideTop.Control'#7#15'cmbDebuggerPath'#23'Anchor'
+'SideRight.Control'#7#14'gbDebuggerType'#20'AnchorSideRight.Side'#7#9'asrBot'
+'tom'#24'AnchorSideBottom.Control'#7#15'cmbDebuggerPath'#21'AnchorSideBottom'
+'.Side'#7#9'asrBottom'#4'Left'#3#173#1#6'Height'#2#21#3'Top'#2'!'#5'Width'#2
+#23#7'Anchors'#11#5'akTop'#7'akRight'#8'akBottom'#0#19'BorderSpacing.Right'#2
+#6#7'Caption'#6#3'...'#7'OnClick'#7#24'cmdOpenDebuggerPathCLICK'#8'TabOrder'
+#2#2#0#0#0#9'TGroupBox'#22'gbAdditionalSearchPath'#22'AnchorSideLeft.Control'
+#7#9'pgGeneral'#21'AnchorSideTop.Control'#7#14'gbDebuggerType'#18'AnchorSide'
+'Top.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#9'pgGeneral'#20'Anch'
+'orSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2'7'#3'Top'#2'\'#5'W'
+'idth'#3#206#1#5'Align'#7#5'alTop'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6
+#7'Caption'#6#22'Additional search path'#12'ClientHeight'#2'7'#11'ClientWidt'
+'h'#3#206#1#11'ParentCtl3D'#8#8'TabOrder'#2#1#0#5'TEdit'#17'txtAdditionalPat'
+'h'#22'AnchorSideLeft.Control'#7#22'gbAdditionalSearchPath'#21'AnchorSideTop'
+'.Control'#7#22'gbAdditionalSearchPath'#23'AnchorSideRight.Control'#7#21'cmd'
+'OpenAdditionalPath'#4'Left'#2#6#6'Height'#2#25#3'Top'#2#6#5'Width'#3#161#1#7
+'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'#2#6#8
+'TabOrder'#2#0#0#0#7'TButton'#21'cmdOpenAdditionalPath'#21'AnchorSideTop.Con'
+'trol'#7#17'txtAdditionalPath'#23'AnchorSideRight.Control'#7#22'gbAdditional'
+'SearchPath'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Con'
+'trol'#7#17'txtAdditionalPath'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Le'
+'ft'#3#173#1#6'Height'#2#25#3'Top'#2#6#5'Width'#2#23#7'Anchors'#11#5'akTop'#7
+'akRight'#8'akBottom'#0#19'BorderSpacing.Right'#2#6#7'Caption'#6#3'...'#7'On'
+'Click'#7#26'cmdOpenAdditionalPathClick'#8'TabOrder'#2#1#0#0#0#9'TGroupBox'
+#18'gbDebuggerSpecific'#22'AnchorSideLeft.Control'#7#9'pgGeneral'#21'AnchorS'
+'ideTop.Control'#7#25'gcbDebuggerGeneralOptions'#18'AnchorSideTop.Side'#7#9
+'asrBottom'#23'AnchorSideRight.Control'#7#9'pgGeneral'#20'AnchorSideRight.Si'
+'de'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#9'pgGeneral'#21'AnchorSid'
+'eBottom.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#3#161#0#3'Top'#3#215#0#5
+'Width'#3#206#1#5'Align'#7#8'alClient'#20'BorderSpacing.Around'#2#6#7'Captio'
+'n'#6'7Debugger specific options (depends on type of debugger)'#12'ClientHei'
+'ght'#3#161#0#11'ClientWidth'#3#206#1#11'ParentCtl3D'#8#8'TabOrder'#2#2#0#6
+'TPanel'#16'pnlDebugSpecific'#4'Left'#2#6#6'Height'#3#131#0#3'Top'#2#6#5'Wid'
+'th'#3#190#1#5'Align'#7#8'alClient'#20'BorderSpacing.Around'#2#6#10'BevelOut'
+'er'#7#6'bvNone'#11'BorderWidth'#2#4#11'FullRepaint'#8#8'TabOrder'#2#0#7'Tab'
+'Stop'#9#0#0#0#11'TCheckGroup'#25'gcbDebuggerGeneralOptions'#22'AnchorSideLe'
+'ft.Control'#7#9'pgGeneral'#21'AnchorSideTop.Control'#7#22'gbAdditionalSearc'
+'hPath'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#9
,'pgGeneral'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2
+'8'#3'Top'#3#153#0#5'Width'#3#206#1#5'Align'#7#5'alTop'#8'AutoFill'#9#20'Bor'
+'derSpacing.Around'#2#6#7'Caption'#6#24'Debugger general options'#28'ChildSi'
+'zing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSiz'
+'ing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.Enlarg'
+'eVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7
+#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'C'
+'hildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.Contr'
+'olsPerLine'#2#1#8'TabOrder'#2#3#0#0#0#5'TPage'#10'pgEventLog'#7'Caption'#6
+#10'pgEventLog'#11'ClientWidth'#3#218#1#12'ClientHeight'#3'~'#1#0#9'TGroupBo'
+'x'#9'gbGeneral'#4'Left'#2#6#6'Height'#3#132#0#3'Top'#2#6#5'Width'#3#206#1#5
+'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6#7'General'#12'C'
+'lientHeight'#3#132#0#11'ClientWidth'#3#206#1#11'ParentCtl3D'#8#8'TabOrder'#2
+#0#0#9'TCheckBox'#16'chkClearLogOnRun'#4'Left'#2#4#6'Height'#2#19#3'Top'#2#5
+#5'Width'#2'f'#7'Caption'#6#16'Clear log on run'#8'TabOrder'#2#0#0#0#9'TChec'
+'kBox'#17'chkLimitLinecount'#4'Left'#2#4#6'Height'#2#19#3'Top'#2#29#5'Width'
+#2'j'#7'Caption'#6#18'Limit linecount to'#8'TabOrder'#2#1#0#0#9'TSpinEdit'#16
+'seLimitLinecount'#4'Left'#2'.'#6'Height'#2#20#3'Top'#2'6'#5'Width'#2'R'#7'E'
+'nabled'#8#8'TabOrder'#2#2#0#0#0#9'TGroupBox'#10'gbMessages'#4'Left'#2#6#6'H'
+'eight'#3#232#0#3'Top'#3#144#0#5'Width'#3#206#1#5'Align'#7#8'alClient'#20'Bo'
+'rderSpacing.Around'#2#6#7'Caption'#6#8'Messages'#12'ClientHeight'#3#232#0#11
+'ClientWidth'#3#206#1#7'Enabled'#8#11'ParentCtl3D'#8#8'TabOrder'#2#1#0#9'TCh'
+'eckBox'#21'chkMessagesBreakpoint'#4'Left'#2#4#6'Height'#2#19#3'Top'#2#5#5'W'
+'idth'#2'M'#11'AllowGrayed'#9#7'Caption'#6#10'Breakpoint'#8'TabOrder'#2#0#0#0
+#9'TCheckBox'#18'chkMessagesProcess'#4'Left'#2#4#6'Height'#2#19#3'Top'#2#29#5
+'Width'#2'?'#11'AllowGrayed'#9#7'Caption'#6#7'Process'#8'TabOrder'#2#1#0#0#9
+'TCheckBox'#17'chkMessagesThread'#4'Left'#2#4#6'Height'#2#19#3'Top'#2'5'#5'W'
+'idth'#2'<'#11'AllowGrayed'#9#7'Caption'#6#6'Thread'#8'TabOrder'#2#2#0#0#9'T'
+'CheckBox'#17'chkMessagesModule'#4'Left'#2#4#6'Height'#2#19#3'Top'#2'M'#5'Wi'
+'dth'#2'<'#11'AllowGrayed'#9#7'Caption'#6#6'Module'#8'TabOrder'#2#3#0#0#9'TC'
+'heckBox'#17'chkMessagesOutput'#4'Left'#2#4#6'Height'#2#19#3'Top'#2'e'#5'Wid'
+'th'#2'<'#11'AllowGrayed'#9#7'Caption'#6#6'Output'#8'TabOrder'#2#4#0#0#9'TCh'
+'eckBox'#17'chkMessagesWindow'#4'Left'#2#4#6'Height'#2#19#3'Top'#2'}'#5'Widt'
+'h'#2'@'#11'AllowGrayed'#9#7'Caption'#6#6'Window'#8'TabOrder'#2#5#0#0#9'TChe'
+'ckBox'#20'chkMessagesInterface'#4'Left'#2#4#6'Height'#2#19#3'Top'#3#149#0#5
+'Width'#2'G'#11'AllowGrayed'#9#7'Caption'#6#9'Interface'#8'TabOrder'#2#6#0#0
+#0#0#5'TPage'#12'pgExceptions'#7'Caption'#6#12'pgExceptions'#11'ClientWidth'
+#3#218#1#12'ClientHeight'#3'~'#1#0#9'TGroupBox'#18'bgIgnoreExceptions'#4'Lef'
+'t'#2#6#6'Height'#3'Y'#1#3'Top'#2#6#5'Width'#3#206#1#5'Align'#7#8'alClient'
+#20'BorderSpacing.Around'#2#6#7'Caption'#6#23'Ignore these exceptions'#12'Cl'
+'ientHeight'#3'Y'#1#11'ClientWidth'#3#206#1#11'ParentCtl3D'#8#8'TabOrder'#2#0
+#0#13'TCheckListBox'#13'clbExceptions'#20'AnchorSideRight.Side'#7#9'asrBotto'
+'m'#4'Left'#2#6#6'Height'#3#0#1#3'Top'#2#6#5'Width'#3#190#1#5'Align'#7#5'alT'
+'op'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#20'BorderSpac'
+'ing.Around'#2#6#7'OnClick'#7#18'clbExceptionsCLICK'#8'TabOrder'#2#0#0#0#7'T'
+'BitBtn'#15'cmdExceptionAdd'#23'AnchorSideRight.Control'#7#18'cmdExceptionRe'
+'move'#24'AnchorSideBottom.Control'#7#18'bgIgnoreExceptions'#21'AnchorSideBo'
+'ttom.Side'#7#9'asrBottom'#4'Left'#3'('#1#6'Height'#2#23#3'Top'#3'*'#1#5'Wid'
+'th'#2'K'#7'Anchors'#11#7'akRight'#8'akBottom'#0#8'AutoSize'#9#20'BorderSpac'
+'ing.Around'#2#6#7'Caption'#6#3'Add'#20'Constraints.MinWidth'#2'K'#9'NumGlyp'
+'hs'#2#0#7'OnClick'#7#20'cmdExceptionAddCLICK'#8'TabOrder'#2#1#0#0#7'TBitBtn'
+#18'cmdExceptionRemove'#23'AnchorSideRight.Control'#7#18'bgIgnoreExceptions'
+#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#18'b'
+'gIgnoreExceptions'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3'y'#1#6
+'Height'#2#23#3'Top'#3'*'#1#5'Width'#2'K'#7'Anchors'#11#7'akRight'#8'akBotto'
+'m'#0#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#6'Remove'#20'C'
+'onstraints.MinWidth'#2'K'#7'Enabled'#8#9'NumGlyphs'#2#0#7'OnClick'#7#23'cmd'
+'ExceptionRemoveCLICK'#8'TabOrder'#2#2#0#0#0#9'TCheckBox'#19'chkBreakOnExcep'
+'tion'#4'Left'#2#6#6'Height'#2#19#3'Top'#3'e'#1#5'Width'#3#206#1#5'Align'#7#8
+'alBottom'#11'AllowGrayed'#9#7'Anchors'#11#6'akLeft'#8'akBottom'#0#20'Border'
+'Spacing.Around'#2#6#7'Caption'#6#27'Break on Lazarus Exceptions'#8'TabOrder'
+#2#1#0#0#0#5'TPage'#9'pgSignals'#7'Caption'#6#9'pgSignals'#11'ClientWidth'#3
+#218#1#12'ClientHeight'#3'~'#1#0#9'TGroupBox'#9'gbSignals'#4'Left'#2#6#6'Hei'
+'ght'#3'r'#1#3'Top'#2#6#5'Width'#3#206#1#5'Align'#7#8'alClient'#20'BorderSpa'
,'cing.Around'#2#6#7'Caption'#6#7'Signals'#12'ClientHeight'#3'`'#1#11'ClientW'
+'idth'#3#202#1#11'ParentCtl3D'#8#8'TabOrder'#2#0#0#9'TListView'#9'lvSignals'
+#4'Left'#2#6#6'Height'#3'$'#1#3'Top'#2#6#5'Width'#3#190#1#5'Align'#7#5'alTop'
+#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#20'BorderSpacing.'
+'Around'#2#6#7'Columns'#14#1#7'Caption'#6#4'Name'#5'Width'#3#200#0#0#1#7'Cap'
+'tion'#6#2'ID'#0#1#7'Caption'#6#10'Handled by'#5'Width'#2'K'#0#1#7'Caption'#6
+#6'Resume'#5'Width'#2'k'#0#0#9'PopupMenu'#7#9'popSignal'#8'TabOrder'#2#0#9'V'
+'iewStyle'#7#8'vsReport'#0#0#7'TBitBtn'#15'cmdSignalRemove'#23'AnchorSideRig'
+'ht.Control'#7#9'gbSignals'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'Ancho'
+'rSideBottom.Control'#7#9'gbSignals'#21'AnchorSideBottom.Side'#7#9'asrBottom'
+#4'Left'#3'y'#1#6'Height'#2#23#3'Top'#3'C'#1#5'Width'#2'K'#7'Anchors'#11#7'a'
+'kRight'#8'akBottom'#0#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'
+#6#6'Remove'#20'Constraints.MinWidth'#2'K'#7'Enabled'#8#9'NumGlyphs'#2#0#8'T'
+'abOrder'#2#1#0#0#7'TBitBtn'#12'cmdSignalAdd'#23'AnchorSideRight.Control'#7
+#15'cmdSignalRemove'#24'AnchorSideBottom.Control'#7#9'gbSignals'#21'AnchorSi'
+'deBottom.Side'#7#9'asrBottom'#4'Left'#3'('#1#6'Height'#2#23#3'Top'#3'C'#1#5
+'Width'#2'K'#7'Anchors'#11#7'akRight'#8'akBottom'#0#8'AutoSize'#9#20'BorderS'
+'pacing.Around'#2#6#7'Caption'#6#3'Add'#20'Constraints.MinWidth'#2'K'#9'NumG'
+'lyphs'#2#0#8'TabOrder'#2#2#0#0#0#0#0#6'TPanel'#8'BtnPanel'#6'Height'#2'#'#3
+'Top'#3#152#1#5'Width'#3#226#1#5'Align'#7#8'alBottom'#8'AutoSize'#9#10'Bevel'
+'Outer'#7#6'bvNone'#12'ClientHeight'#2'#'#11'ClientWidth'#3#226#1#8'TabOrder'
+#2#1#0#7'TBitBtn'#5'cmdOK'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3
+'@'#1#6'Height'#2#23#3'Top'#2#6#5'Width'#2'K'#5'Align'#7#7'alRight'#8'AutoSi'
+'ze'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#3'&OK'#20'Constraints.MinWi'
+'dth'#2'K'#7'Default'#9#4'Kind'#7#4'bkOK'#9'NumGlyphs'#2#0#7'OnClick'#7#10'c'
+'mdOKCLICK'#8'TabOrder'#2#0#0#0#7'TBitBtn'#9'cmdCancel'#20'AnchorSideRight.S'
+'ide'#7#9'asrBottom'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#145#1
+#6'Height'#2#23#3'Top'#2#6#5'Width'#2'K'#5'Align'#7#7'alRight'#8'AutoSize'#9
+#20'BorderSpacing.Around'#2#6#6'Cancel'#9#7'Caption'#6#6'Cancel'#20'Constrai'
+'nts.MinWidth'#2'K'#4'Kind'#7#8'bkCancel'#11'ModalResult'#2#2#9'NumGlyphs'#2
+#0#8'TabOrder'#2#1#0#0#0#10'TPopupMenu'#9'popSignal'#4'left'#2#8#3'top'#3#192
+#1#0#9'TMenuItem'#19'mnuHandledByProgram'#9'AutoCheck'#9#7'Caption'#6#18'Han'
+'dled by Program'#10'GroupIndex'#2#1#9'RadioItem'#9#0#0#9'TMenuItem'#21'mnui'
+'HandledByDebugger'#9'AutoCheck'#9#7'Caption'#6#19'Handled by Debugger'#10'G'
+'roupIndex'#2#1#9'RadioItem'#9#0#0#9'TMenuItem'#2'N1'#7'Caption'#6#1'-'#0#0#9
+'TMenuItem'#16'mnuResumeHandled'#9'AutoCheck'#9#7'Caption'#6#14'Resume Handl'
+'ed'#10'GroupIndex'#2#2#9'RadioItem'#9#0#0#9'TMenuItem'#18'mnuResumeUnhandle'
+'d'#9'AutoCheck'#9#7'Caption'#6#16'Resume Unhandled'#10'GroupIndex'#2#2#9'Ra'
+'dioItem'#9#0#0#0#0
]);

View File

@ -1,507 +0,0 @@
{
/***************************************************************************
DebugOptionsFrm.pas
-------------------
***************************************************************************/
***************************************************************************
* *
* This source is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This code is distributed in the hope that it will be useful, but *
* WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* General Public License for more details. *
* *
* A copy of the GNU General Public License is available on the World *
* Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also *
* obtain it by writing to the Free Software Foundation, *
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
* *
***************************************************************************
}
unit DebugOptionsFrm;
{$mode objfpc} {$H+}
interface
uses
Classes, SysUtils, TypInfo, LResources, Forms, Controls, Graphics, Dialogs,
ExtCtrls, StdCtrls, Buttons, ComCtrls, Menus, Spin, CheckLst, FileUtil,
PropEdits, ObjectInspector,
LazarusIDEStrConsts, InputHistory, IDEProcs, LCLProc,
PathEditorDlg, EnvironmentOpts, BaseDebugManager, Debugger, DBGUtils;
type
{ TDebuggerOptionsForm }
TDebuggerOptionsForm = class (TForm)
cmdExceptionAdd: TBitBtn;
cmdExceptionRemove: TBitBtn;
cmdOK: TBitBtn;
cmdCancel: TBitBtn;
cmdSignalAdd: TBitBtn;
cmdSignalRemove: TBitBtn;
gcbDebuggerGeneralOptions: TCheckGroup;
clbExceptions: TCHECKLISTBOX;
chkMessagesInterface: TCHECKBOX;
chkClearLogOnRun: TCHECKBOX;
chkLimitLineCount: TCHECKBOX;
chkMessagesBreakpoint: TCHECKBOX;
chkMessagesProcess: TCHECKBOX;
chkMessagesThread: TCHECKBOX;
chkMessagesModule: TCHECKBOX;
chkMessagesOutput: TCHECKBOX;
chkMessagesWindow: TCHECKBOX;
cmdOpenDebuggerPath: TBUTTON;
cmdOpenAdditionalPath: TBUTTON;
chkBreakOnException: TCHECKBOX;
cmbDebuggerType: TCOMBOBOX;
cmbDebuggerPath: TCOMBOBOX;
N1: TMENUITEM;
BtnPanel: TPanel;
pnlDebugSpecific: TPanel;
seLimitLinecount: TSPINEDIT;
txtAdditionalPath: TEDIT;
gbDebuggerType: TGROUPBOX;
gbAdditionalSearchPath: TGROUPBOX;
gbDebuggerSpecific: TGROUPBOX;
gbGeneral: TGROUPBOX;
gbMessages: TGROUPBOX;
bgIgnoreExceptions: TGROUPBOX;
gbSignals: TGROUPBOX;
lvSignals: TLISTVIEW;
mnuResumeUnhandled: TMENUITEM;
mnuHandledByProgram: TMENUITEM;
mnuiHandledByDebugger: TMENUITEM;
mnuResumeHandled: TMENUITEM;
nbDebugOptions: TNOTEBOOK;
pgSignals: TPAGE;
pgExceptions: TPAGE;
pgEventLog: TPAGE;
pgGeneral: TPAGE;
popSignal: TPOPUPMENU;
PropertyGrid: TOIPropertyGrid;
procedure DebuggerOptionsFormCREATE(Sender: TObject);
procedure DebuggerOptionsFormDESTROY(Sender: TObject);
procedure clbExceptionsCLICK (Sender: TObject );
procedure cmbDebuggerTypeCHANGE(Sender: TObject);
procedure cmdExceptionAddCLICK (Sender: TObject );
procedure cmdExceptionRemoveCLICK (Sender: TObject );
procedure cmdOKCLICK (Sender: TObject );
procedure cmdOpenAdditionalPathClick(Sender: TObject);
procedure cmdOpenDebuggerPathCLICK(Sender: TObject);
private
FPropertyEditorHook: TPropertyEditorHook;
FExceptionDeleteList: TStringList;
FOldDebuggerPathAndParams: string;
FCurDebuggerClass: TDebuggerClass; // currently shown debugger class
procedure AddExceptionLine(const AException: TIDEException; AName: String);
procedure AddSignalLine(const ASignal: TIDESignal);
function CheckValues: boolean;
procedure FetchDebuggerClass;
procedure FetchDebuggerGeneralOptions;
procedure FetchDebuggerSpecificOptions;
function GetDebuggerClass: TDebuggerClass;
procedure SetDebuggerClass(const AClass: TDebuggerClass);
public
end;
var
DebuggerOptionsForm: TDebuggerOptionsForm;
implementation
const
HANDLEDBY_CAPTION: array [Boolean] of String = ('Program', 'Debugger');
RESUME_CAPTION: array[Boolean] of String = ('Unhandled', 'Handled');
{ TDebuggerOptionsForm }
procedure TDebuggerOptionsForm.AddExceptionLine(const AException: TIDEException;
AName: String);
var
idx: Integer;
begin
if (AName = '') and (AException <> nil)
then AName := AException.Name;
if AName = '' then Exit;
idx := clbExceptions.Items.AddObject(AName, AException);
clbExceptions.Checked[idx] := (AException = nil) or AException.Enabled;
end;
procedure TDebuggerOptionsForm.AddSignalLine(const ASignal: TIDESignal);
var
Item: TListItem;
begin
Item := lvSignals.Items.Add;
Item.Caption := ASignal.Name;
Item.SubItems.Add(IntToStr(ASignal.ID));
Item.SubItems.Add(HANDLEDBY_CAPTION[ASignal.HandledByDebugger]);
Item.SubItems.Add(RESUME_CAPTION[ASignal.ResumeHandled]);
Item.Data := ASignal;
end;
function TDebuggerOptionsForm.CheckValues: boolean;
begin
Result := false;
if assigned(FCurDebuggerClass) and FCurDebuggerClass.HasExePath and
not CheckExecutable(FOldDebuggerPathAndParams,cmbDebuggerPath.Text,
lisEnvOptDlgInvalidDebuggerFilename,
lisEnvOptDlgInvalidDebuggerFilenameMsg)
then exit;
Result := true;
end;
procedure TDebuggerOptionsForm.FetchDebuggerClass;
var
n: PtrInt;
DbgClass, CurClass: TDebuggerClass;
List: TStringList;
begin
List := TStringList.Create;
List.Sorted := True;
CurClass := nil;
for n := 0 to DebugBoss.DebuggerCount - 1 do
begin
DbgClass := DebugBoss.Debuggers[n];
List.AddObject(DbgClass.Caption, TObject(n));
if (FCurDebuggerClass = nil)
and (CompareText(DbgClass.ClassName, EnvironmentOptions.DebuggerClass) = 0)
then CurClass := DbgClass;
end;
cmbDebuggerType.Items.Assign(List);
FreeAndNil(List);
SetDebuggerClass(CurClass);
if FCurDebuggerClass = nil
then SetComboBoxText(cmbDebuggerType, '(none)')
else SetComboBoxText(cmbDebuggerType, FCurDebuggerClass.Caption);
txtAdditionalPath.Text:=EnvironmentOptions.DebuggerSearchPath;
end;
procedure TDebuggerOptionsForm.FetchDebuggerGeneralOptions;
begin
// IMPORTANT if more items are added the indexes must be updated here!
gcbDebuggerGeneralOptions.Checked[0] := EnvironmentOptions.DebuggerShowStopMessage;
end;
procedure TDebuggerOptionsForm.FetchDebuggerSpecificOptions;
var
S: String;
i: Integer;
Filename: string;
NewFilename: string;
begin
with cmbDebuggerPath.Items do begin
BeginUpdate;
Assign(EnvironmentOptions.DebuggerFileHistory);
if (Count = 0)
and (FCurDebuggerClass <> nil)
then begin
S := FCurDebuggerClass.ExePaths;
while S <> '' do
begin
Add(GetPart([], [';'], S));
if S <> '' then System.Delete(S, 1, 1);
end;
end;
EndUpdate;
end;
Filename:=cmbDebuggerPath.Text;
if Filename='' then begin
for i:=0 to cmbDebuggerPath.Items.Count-1 do begin
NewFilename:=cmbDebuggerPath.Items[i];
if FileExistsCached(NewFilename) then begin
Filename:=NewFilename;
break;
end;
NewFilename:=FindDefaultExecutablePath(ExtractFileName(Filename));
if NewFilename<>'' then begin
Filename:=NewFilename;
break;
end;
end;
end;
SetComboBoxText(cmbDebuggerPath,Filename,20);
PropertyGrid.Selection.Clear;
if FCurDebuggerClass<>nil then begin
PropertyGrid.Selection.Add(FCurDebuggerClass.GetProperties);
end;
PropertyGrid.BuildPropertyList;
end;
function TDebuggerOptionsForm.GetDebuggerClass: TDebuggerClass;
var
idx: PtrInt;
begin
Result := nil;
idx := cmbDebuggerType.ItemIndex;
if idx = -1 then Exit;
idx := PtrInt(cmbDebuggerType.Items.Objects[idx]);
if idx = -1 then Exit;
Result := DebugBoss.Debuggers[idx];
end;
procedure TDebuggerOptionsForm.SetDebuggerClass(const AClass: TDebuggerClass);
begin
if FCurDebuggerClass = AClass then Exit;
FCurDebuggerClass := AClass;
FetchDebuggerSpecificOptions;
end;
procedure TDebuggerOptionsForm.clbExceptionsCLICK (Sender: TObject );
begin
cmdExceptionRemove.Enabled := clbExceptions.ItemIndex <> -1;
end;
procedure TDebuggerOptionsForm.cmbDebuggerTypeCHANGE(Sender: TObject);
begin
SetDebuggerClass(GetDebuggerClass);
end;
procedure TDebuggerOptionsForm.cmdExceptionAddCLICK(Sender: TObject);
var
idx: Integer;
S: String;
begin
if not InputQuery('Add Exception', 'Enter the name of the exception', S)
then Exit;
if clbExceptions.Items.IndexOf(S) = -1
then begin
idx := FExceptionDeleteList.IndexOf(S);
if idx = -1
then begin
AddExceptionLine(nil, S);
end
else begin
AddExceptionLine(TIDEException(FExceptionDeleteList.Objects[idx]), S);
FExceptionDeleteList.Delete(idx);
end;
end
else begin
MessageDlg('Duplicate Exception name', mtError, [mbOK], 0);
end;
end;
procedure TDebuggerOptionsForm.cmdExceptionRemoveCLICK(Sender: TObject);
var
idx: Integer;
obj: TObject;
begin
idx := clbExceptions.ItemIndex;
if idx <> -1
then begin
obj := clbExceptions.Items.Objects[idx];
if obj <> nil
then FExceptionDeleteList.AddObject(clbExceptions.Items[idx], obj);
clbExceptions.Items.Delete(idx);
end;
cmdExceptionRemove.Enabled := clbExceptions.ItemIndex <> -1;
end;
procedure TDebuggerOptionsForm.cmdOKCLICK(Sender: TObject );
var
n: Integer;
ie: TIDEException;
begin
if not CheckValues then exit;
for n := 0 to FExceptionDeleteList.Count - 1 do
FExceptionDeleteList.Objects[n].Free;
for n := 0 to clbExceptions.Items.Count - 1 do
begin
ie := TIDEException(clbExceptions.Items.Objects[n]);
if ie = nil
then begin
ie := DebugBoss.Exceptions.Add(clbExceptions.Items[n]);
ie.Enabled := clbExceptions.Checked[n];
end
else begin
ie.BeginUpdate;
try
ie.Name := clbExceptions.Items[n];
ie.Enabled := clbExceptions.Checked[n];
finally
ie.EndUpdate;
end;
end;
end;
EnvironmentOptions.DebuggerFilename:=cmbDebuggerPath.Text;
EnvironmentOptions.DebuggerFileHistory.Assign(cmbDebuggerPath.Items);
EnvironmentOptions.DebuggerSearchPath:=
TrimSearchPath(txtAdditionalPath.Text,'');
// IMPORTANT if more items are added the indexes must be updated here!
EnvironmentOptions.DebuggerShowStopMessage := gcbDebuggerGeneralOptions.Checked[0];
if FCurDebuggerClass = nil
then EnvironmentOptions.DebuggerClass := ''
else EnvironmentOptions.DebuggerClass := FCurDebuggerClass.ClassName;
ModalResult:=mrOk;
end;
procedure TDebuggerOptionsForm.cmdOpenAdditionalPathClick(Sender: TObject);
begin
PathEditorDialog.Path:=txtAdditionalPath.Text;
PathEditorDialog.Templates:=SetDirSeparators(
'$(LazarusDir)/include/$(TargetOS)'
+';$(FPCSrcDir)/rtl/inc/'
+';$(FPCSrcDir)/rtl/$(SrcOS)'
+';$(FPCSrcDir)/rtl/$(TargetOS)'
);
if PathEditorDialog.ShowModal=mrOk then
txtAdditionalPath.Text:=PathEditorDialog.Path;
end;
procedure TDebuggerOptionsForm.cmdOpenDebuggerPathCLICK(Sender: TObject);
var
OpenDialog: TOpenDialog;
AFilename: string;
begin
OpenDialog:=TOpenDialog.Create(nil);
try
InputHistories.ApplyFileDialogSettings(OpenDialog);
OpenDialog.Options:=OpenDialog.Options+[ofPathMustExist];
OpenDialog.Title:=lisChooseDebuggerPath;
if OpenDialog.Execute then begin
AFilename:=CleanAndExpandFilename(OpenDialog.Filename);
SetComboBoxText(cmbDebuggerPath,AFilename);
CheckExecutable(FOldDebuggerPathAndParams,cmbDebuggerPath.Text,
lisEnvOptDlgInvalidDebuggerFilename,
lisEnvOptDlgInvalidDebuggerFilenameMsg);
end;
InputHistories.StoreFileDialogSettings(OpenDialog);
finally
OpenDialog.Free;
end;
end;
procedure TDebuggerOptionsForm.DebuggerOptionsFormCREATE(Sender: TObject);
var
n: Integer;
begin
//translations
pgGeneral.Caption := lisMenuInsertGeneral;
gbDebuggerType.Caption := dlgDebugType;
gbAdditionalSearchPath.Caption := lisDebugOptionsFrmAdditionalSearchPath;
gcbDebuggerGeneralOptions.Caption := lisDebugOptionsFrmDebuggerGeneralOptions;
gcbDebuggerGeneralOptions.Items.Add(lisDebugOptionsFrmShowMessageOnStop);
gbDebuggerSpecific.Caption := lisDebugOptionsFrmDebuggerSpecific;
pgEventLog.Caption := lisDebugOptionsFrmEventLog;
gbGeneral.Caption := lisMenuInsertGeneral;
chkClearLogOnRun.Caption := lisDebugOptionsFrmClearLogOnRun;
chkLimitLinecount.Caption := lisDebugOptionsFrmLimitLinecountTo;
gbMessages.Caption := lisMenuViewMessages;
chkMessagesBreakpoint.Caption := lisDebugOptionsFrmBreakpoint;
chkMessagesProcess.Caption := lisDebugOptionsFrmProcess;
chkMessagesThread.Caption := lisDebugOptionsFrmThread;
chkMessagesModule.Caption := lisDebugOptionsFrmModule;
chkMessagesOutput.Caption := lisDebugOptionsFrmOutput;
chkMessagesWindow.Caption := lisDebugOptionsFrmWindow;
chkMessagesInterface.Caption := lisDebugOptionsFrmInterface;
pgExceptions.Caption := lisDebugOptionsFrmLanguageExceptions;
bgIgnoreExceptions.Caption := lisDebugOptionsFrmIgnoreTheseExceptions;
cmdExceptionRemove.Caption := lisExtToolRemove;
cmdExceptionAdd.Caption := lisCodeTemplAdd;
cmdExceptionRemove.LoadGlyphFromLazarusResource('laz_delete');
cmdExceptionAdd.LoadGlyphFromLazarusResource('laz_add');
chkBreakOnException.Caption := lisDebugOptionsFrmBreakOnLazarusExceptions;
pgSignals.Caption := lisDebugOptionsFrmOSExceptions;
gbSignals.Caption := lisDebugOptionsFrmSignals;
lvSignals.Column[0].Caption := lisDebugOptionsFrmName;
lvSignals.Column[1].Caption := lisDebugOptionsFrmID;
lvSignals.Column[2].Caption := lisDebugOptionsFrmHandledBy;
lvSignals.Column[3].Caption := lisDebugOptionsFrmResume;
cmdSignalAdd.Caption := lisCodeTemplAdd;
cmdSignalRemove.Caption := lisExtToolRemove;
cmdSignalAdd.LoadGlyphFromLazarusResource('laz_add');
cmdSignalRemove.LoadGlyphFromLazarusResource('laz_delete');
mnuHandledByProgram.Caption := lisDebugOptionsFrmHandledByProgram;
mnuiHandledByDebugger.Caption := lisDebugOptionsFrmHandledByDebugger;
mnuResumeHandled.Caption := lisDebugOptionsFrmResumeHandled;
mnuResumeUnhandled.Caption := lisDebugOptionsFrmResumeUnhandled;
cmdOK.Caption:=lisOkBtn;
cmdCancel.Caption:=dlgCancel;
cmdOK.LoadGlyphFromLazarusResource('btn_ok');
cmdCancel.LoadGlyphFromLazarusResource('btn_cancel');
FCurDebuggerClass := nil;
FExceptionDeleteList := TStringList.Create;
FExceptionDeleteList.Sorted := True;
for n := 0 to DebugBoss.Exceptions.Count - 1 do
begin
AddExceptionLine(DebugBoss.Exceptions[n], '');
end;
for n := 0 to DebugBoss.Signals.Count - 1 do
begin
AddSignalLine(DebugBoss.Signals[n]);
end;
// create the PropertyEditorHook (the interface to the properties)
FPropertyEditorHook:=TPropertyEditorHook.Create;
// create the PropertyGrid
PropertyGrid:=TOIPropertyGrid.CreateWithParams(Self,FPropertyEditorHook
,[tkUnknown, tkInteger, tkChar, tkEnumeration, tkFloat, tkSet{, tkMethod}
, tkSString, tkLString, tkAString, tkWString, tkVariant
{, tkArray, tkRecord, tkInterface}, tkClass, tkObject, tkWChar, tkBool
, tkInt64, tkQWord],
0);
with PropertyGrid do begin
Name:='PropertyGrid';
// Use panel for border
Parent := pnlDebugSpecific; //gbDebuggerSpecific;
Visible := True;
Align := alClient;
Layout := oilVertical;
RowSpacing := 4;
end;
FOldDebuggerPathAndParams:=EnvironmentOptions.DebuggerFilename;
cmbDebuggerPath.Text:=FOldDebuggerPathAndParams;
FetchDebuggerClass;
FetchDebuggerGeneralOptions;
// Fix designtime changes
nbDebugOptions.PageIndex := 0;
end;
procedure TDebuggerOptionsForm.DebuggerOptionsFormDESTROY(Sender: TObject);
begin
FreeAndNil(FExceptionDeleteList);
FreeAndNil(FPropertyEditorHook);
end;
initialization
{$I debugoptionsfrm.lrs}
end.

View File

@ -45,7 +45,7 @@ uses
LCLType, LCLIntf,
SynEdit, CodeCache, CodeToolManager,
MenuIntf, IDECommands, LazIDEIntf, ProjectIntf,
LazConf, DebugOptionsFrm,
LazConf,
CompilerOptions, EditorOptions, EnvironmentOpts, ProjectOpts, KeyMapping, SourceEditor,
ProjectDefs, Project, IDEProcs, InputHistory, Debugger,
IDEOptionDefs, LazarusIDEStrConsts,
@ -74,7 +74,6 @@ type
// Menu events
procedure mnuViewDebugDialogClick(Sender: TObject);
procedure mnuResetDebuggerClicked(Sender: TObject);
procedure mnuDebuggerOptionsClick(Sender: TObject);
// SrcNotebook events
function OnSrcNotebookAddWatchesAtCursor(Sender: TObject): boolean;
@ -1137,18 +1136,6 @@ begin
ResetDebugger;
end;
procedure TDebugManager.mnuDebuggerOptionsClick(Sender: TObject);
var
DebuggerOptionsForm: TDebuggerOptionsForm;
begin
DebuggerOptionsForm := TDebuggerOptionsForm.Create(nil);
if DebuggerOptionsForm.ShowModal=mrOk then begin
// save to disk
EnvironmentOptions.Save(false);
end;
DebuggerOptionsForm.Free;
end;
//-----------------------------------------------------------------------------
// ScrNoteBook events
@ -1583,8 +1570,6 @@ begin
itmRunMenuEvaluate.Tag := Ord(ddtEvaluate);
// itmRunMenuAddWatch.OnClick := @;
// itmRunMenuAddBpSource.OnClick := @;
itmEnvDebuggerOptions.OnClick := @mnuDebuggerOptionsClick;
end;
end;

View File

@ -306,7 +306,7 @@ type
itmEnvGeneralOptions: TIDEMenuCommand;
//itmEnvEditorOptions: TIDEMenuCommand;
itmEnvCodeTemplates: TIDEMenuCommand;
itmEnvDebuggerOptions: TIDEMenuCommand;
//itmEnvDebuggerOptions: TIDEMenuCommand;
//itmEnvCodeToolsOptions: TIDEMenuCommand;
itmEnvCodeToolsDefinesEditor: TIDEMenuCommand;
//itmIDECacheSection: TIDEMenuSection;

View File

@ -738,8 +738,6 @@ begin
lisMenuGeneralOptions,'menu_environment_options');
CreateMenuItem(ParentMI,itmEnvCodeTemplates,'itmEnvCodeTemplates',
lisMenuEditCodeTemplates,'');
CreateMenuItem(ParentMI,itmEnvDebuggerOptions,'itmEnvDebuggerOptions',
lisMenDebuggerOptions,'debugger_options');
CreateMenuItem(ParentMI,itmEnvCodeToolsDefinesEditor,
'itmEnvCodeToolsDefinesEditor',lisMenuCodeToolsDefinesEditor,
'menu_codetoolsdefineseditor');