Skip to content

Commit f93bac3

Browse files
committed
Fix indentation and bump bugfix version
1 parent 31a8bd6 commit f93bac3

File tree

2 files changed

+131
-131
lines changed

2 files changed

+131
-131
lines changed

autoload/vebugger/mdbg.vim

Lines changed: 130 additions & 130 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,53 @@
11
function! vebugger#mdbg#searchAndAttach(binaryFile,srcpath)
2-
let l:processId=vebugger#util#selectProcessOfFile(a:binaryFile)
3-
if 0<l:processId
4-
call vebugger#mdbg#start(a:binaryFile,{'srcpath':a:srcpath,'pid':l:processId})
5-
endif
2+
let l:processId=vebugger#util#selectProcessOfFile(a:binaryFile)
3+
if 0<l:processId
4+
call vebugger#mdbg#start(a:binaryFile,{'srcpath':a:srcpath,'pid':l:processId})
5+
endif
66
endfunction
77

88
function! vebugger#mdbg#start(binaryFile,args)
9-
let l:debugger=vebugger#std#startDebugger(shellescape(vebugger#util#getToolFullPath('mdbg',get(a:args,'version'),'Mdbg')))
10-
let l:debugger.state.mdbg={'breakpointNumbers':{}}
11-
let l:debugger.readResultTemplate.mdbg={'breakpointBound':{}}
12-
13-
if has_key(a:args,'srcpath')
14-
let l:debugger.state.mdbg.srcpath=a:args.srcpath
15-
else
16-
let l:debugger.state.mdbg.srcpath='.'
17-
endif
9+
let l:debugger=vebugger#std#startDebugger(shellescape(vebugger#util#getToolFullPath('mdbg',get(a:args,'version'),'Mdbg')))
10+
let l:debugger.state.mdbg={'breakpointNumbers':{}}
11+
let l:debugger.readResultTemplate.mdbg={'breakpointBound':{}}
1812

19-
call l:debugger.writeLine('when StepComplete do where')
20-
call l:debugger.writeLine('when BreakpointHit do where')
13+
if has_key(a:args,'srcpath')
14+
let l:debugger.state.mdbg.srcpath=a:args.srcpath
15+
else
16+
let l:debugger.state.mdbg.srcpath='.'
17+
endif
2118

19+
call l:debugger.writeLine('when StepComplete do where')
20+
call l:debugger.writeLine('when BreakpointHit do where')
2221

23-
if get(a:args,'pid') "Attach to process
24-
call l:debugger.writeLine('attach '.string(a:args.pid))
25-
else
26-
if !get(a:args,'noConsole')
27-
call l:debugger.writeLine('mode nc on')
28-
endif
29-
call l:debugger.writeLine('run "'.s:pathToMdbgStyle(fnamemodify(a:binaryFile, ':p')).'" '.vebugger#util#commandLineArgsForProgram(a:args))
30-
call l:debugger.writeLine('where')
31-
end
32-
call l:debugger.addReadHandler(function('s:readProgramOutput'))
33-
call l:debugger.addReadHandler(function('s:readWhere'))
34-
call l:debugger.addReadHandler(function('s:readFinish'))
35-
call l:debugger.addReadHandler(function('s:readEvaluatedExpressions'))
36-
call l:debugger.addReadHandler(function('s:readBreakpointBound'))
3722

38-
call l:debugger.addThinkHandler(function('s:breakpointAdded'))
23+
if get(a:args,'pid') "Attach to process
24+
call l:debugger.writeLine('attach '.string(a:args.pid))
25+
else
26+
if !get(a:args,'noConsole')
27+
call l:debugger.writeLine('mode nc on')
28+
endif
29+
call l:debugger.writeLine('run "'.s:pathToMdbgStyle(fnamemodify(a:binaryFile, ':p')).'" '.vebugger#util#commandLineArgsForProgram(a:args))
30+
call l:debugger.writeLine('where')
31+
end
32+
call l:debugger.addReadHandler(function('s:readProgramOutput'))
33+
call l:debugger.addReadHandler(function('s:readWhere'))
34+
call l:debugger.addReadHandler(function('s:readFinish'))
35+
call l:debugger.addReadHandler(function('s:readEvaluatedExpressions'))
36+
call l:debugger.addReadHandler(function('s:readBreakpointBound'))
3937

40-
call l:debugger.setWriteHandler('std','flow',function('s:writeFlow'))
41-
call l:debugger.setWriteHandler('std','breakpoints',function('s:writeBreakpoints'))
42-
call l:debugger.setWriteHandler('std','closeDebugger',function('s:closeDebugger'))
43-
call l:debugger.setWriteHandler('std','evaluateExpressions',function('s:requestEvaluateExpression'))
44-
call l:debugger.setWriteHandler('std','executeStatements',function('s:executeStatements'))
38+
call l:debugger.addThinkHandler(function('s:breakpointAdded'))
4539

46-
call l:debugger.generateWriteActionsFromTemplate()
40+
call l:debugger.setWriteHandler('std','flow',function('s:writeFlow'))
41+
call l:debugger.setWriteHandler('std','breakpoints',function('s:writeBreakpoints'))
42+
call l:debugger.setWriteHandler('std','closeDebugger',function('s:closeDebugger'))
43+
call l:debugger.setWriteHandler('std','evaluateExpressions',function('s:requestEvaluateExpression'))
44+
call l:debugger.setWriteHandler('std','executeStatements',function('s:executeStatements'))
4745

48-
call l:debugger.std_addAllBreakpointActions(g:vebugger_breakpoints)
46+
call l:debugger.generateWriteActionsFromTemplate()
4947

50-
return l:debugger
48+
call l:debugger.std_addAllBreakpointActions(g:vebugger_breakpoints)
49+
50+
return l:debugger
5151
endfunction
5252

5353
function! s:pathToMdbgStyle(path)
@@ -67,133 +67,133 @@ function! s:pathToVimStyle(path)
6767
endfunction
6868

6969
function! s:findFilePath(src,fileName,methodName)
70-
let l:fileName = s:pathToVimStyle(a:fileName)
71-
if vebugger#util#isPathAbsolute(l:fileName)
72-
return fnamemodify(l:fileName,':p') "Return the normalized full path
70+
let l:fileName = s:pathToVimStyle(a:fileName)
71+
if vebugger#util#isPathAbsolute(l:fileName)
72+
return fnamemodify(l:fileName,':p') "Return the normalized full path
73+
endif
74+
let l:path=fnamemodify(a:src,':p')
75+
let l:files=glob(l:path.'**/'.l:fileName,0,1)
76+
for l:dirname in split(a:methodName,'\.')
77+
if empty(l:files)
78+
return ''
7379
endif
74-
let l:path=fnamemodify(a:src,':p')
75-
let l:files=glob(l:path.'**/'.l:fileName,0,1)
76-
for l:dirname in split(a:methodName,'\.')
77-
if empty(l:files)
78-
return ''
79-
endif
80-
if 1==len(l:files)
81-
return l:files[0]
82-
endif
83-
let l:path=fnamemodify(l:path.l:dirname,':p')
84-
let l:files=filter(l:files,'-1<stridx(v:val,l:path)')
85-
endfor
86-
return ''
80+
if 1==len(l:files)
81+
return l:files[0]
82+
endif
83+
let l:path=fnamemodify(l:path.l:dirname,':p')
84+
let l:files=filter(l:files,'-1<stridx(v:val,l:path)')
85+
endfor
86+
return ''
8787
endfunction
8888

8989
function! s:readProgramOutput(pipeName,line,readResult,debugger)
9090
endfunction
9191

9292
function! s:readWhere(pipeName,line,readResult,debugger)
93-
if 'out'==a:pipeName
94-
let l:matches=matchlist(a:line,'\v^\*(\d+)\.\s*([A-Za-z0-9_.+<>]+)\s*\((.+):(\d+)\)')
95-
if 3<len(l:matches)
96-
let l:frameNumber=str2nr(l:matches[1])
97-
let l:file=s:findFilePath(a:debugger.state.mdbg.srcpath,l:matches[3],l:matches[2])
98-
let l:file=fnamemodify(l:file,':~:.')
99-
if 0==l:frameNumber " first stackframe is the current location
100-
let a:readResult.std.location={
101-
\'file':(l:file),
102-
\'line':str2nr(l:matches[4])}
103-
endif
104-
let a:readResult.std.callstack={
105-
\'clearOld':('0'==l:frameNumber),
106-
\'add':'after',
107-
\'file':(l:file),
108-
\'line':str2nr(l:matches[4])}
109-
endif
93+
if 'out'==a:pipeName
94+
let l:matches=matchlist(a:line,'\v^\*(\d+)\.\s*([A-Za-z0-9_.+<>]+)\s*\((.+):(\d+)\)')
95+
if 3<len(l:matches)
96+
let l:frameNumber=str2nr(l:matches[1])
97+
let l:file=s:findFilePath(a:debugger.state.mdbg.srcpath,l:matches[3],l:matches[2])
98+
let l:file=fnamemodify(l:file,':~:.')
99+
if 0==l:frameNumber " first stackframe is the current location
100+
let a:readResult.std.location={
101+
\'file':(l:file),
102+
\'line':str2nr(l:matches[4])}
103+
endif
104+
let a:readResult.std.callstack={
105+
\'clearOld':('0'==l:frameNumber),
106+
\'add':'after',
107+
\'file':(l:file),
108+
\'line':str2nr(l:matches[4])}
110109
endif
110+
endif
111111
endfunction
112112

113113
function! s:readFinish(pipeName,line,readResult,debugger)
114-
if a:line=~'\VSTOP: Process Exited\$'
115-
let a:readResult.std.programFinish={'finish':1}
116-
endif
114+
if a:line=~'\VSTOP: Process Exited\$'
115+
let a:readResult.std.programFinish={'finish':1}
116+
endif
117117
endfunction
118118

119119
function! s:writeFlow(writeAction,debugger)
120-
if 'stepin'==a:writeAction
121-
call a:debugger.writeLine('step')
122-
elseif 'stepover'==a:writeAction
123-
call a:debugger.writeLine('next')
124-
elseif 'stepout'==a:writeAction
125-
call a:debugger.writeLine('out')
126-
elseif 'continue'==a:writeAction
127-
call a:debugger.writeLine('go')
128-
endif
120+
if 'stepin'==a:writeAction
121+
call a:debugger.writeLine('step')
122+
elseif 'stepover'==a:writeAction
123+
call a:debugger.writeLine('next')
124+
elseif 'stepout'==a:writeAction
125+
call a:debugger.writeLine('out')
126+
elseif 'continue'==a:writeAction
127+
call a:debugger.writeLine('go')
128+
endif
129129
endfunction
130130

131131
function! s:closeDebugger(writeAction,debugger)
132-
call a:debugger.writeLine('quit')
132+
call a:debugger.writeLine('quit')
133133
endfunction
134134

135135
function! s:writeBreakpoints(writeAction,debugger)
136-
for l:breakpoint in a:writeAction
137-
let l:fullFileName=fnamemodify(l:breakpoint.file,':p')
138-
if 'add'==(l:breakpoint.action)
139-
call a:debugger.writeLine('break '.s:pathToMdbgStyle(l:fullFileName).':'.l:breakpoint.line)
140-
let a:debugger.state.mdbg.breakpointNumbers[s:pathToVimStyle(l:fullFileName).':'.l:breakpoint.line]={}
141-
elseif 'remove'==l:breakpoint.action
142-
call a:debugger.writeLine('delete '.a:debugger.state.mdbg.breakpointNumbers[l:fullFileName.':'.l:breakpoint.line].number)
143-
call remove(a:debugger.state.mdbg.breakpointNumbers,l:fullFileName.':'.l:breakpoint.line)
144-
endif
145-
endfor
136+
for l:breakpoint in a:writeAction
137+
let l:fullFileName=fnamemodify(l:breakpoint.file,':p')
138+
if 'add'==(l:breakpoint.action)
139+
call a:debugger.writeLine('break '.s:pathToMdbgStyle(l:fullFileName).':'.l:breakpoint.line)
140+
let a:debugger.state.mdbg.breakpointNumbers[s:pathToVimStyle(l:fullFileName).':'.l:breakpoint.line]={}
141+
elseif 'remove'==l:breakpoint.action
142+
call a:debugger.writeLine('delete '.a:debugger.state.mdbg.breakpointNumbers[l:fullFileName.':'.l:breakpoint.line].number)
143+
call remove(a:debugger.state.mdbg.breakpointNumbers,l:fullFileName.':'.l:breakpoint.line)
144+
endif
145+
endfor
146146
endfunction
147147

148148
function! s:readBreakpointBound(pipeName,line,readResult,debugger)
149-
if 'out'==a:pipeName
150-
let l:matches=matchlist(a:line,'\vBreakpoint \#(\d+) bound\s*\(line (\d+) in ([^)]+)\)')
151-
if 3<len(l:matches)
152-
let a:readResult.mdbg.breakpointBound={
153-
\'fileNameTail':s:pathToVimStyle(l:matches[3]),
154-
\'line':l:matches[2],
155-
\'breakpointNumber':l:matches[1]}
156-
endif
149+
if 'out'==a:pipeName
150+
let l:matches=matchlist(a:line,'\vBreakpoint \#(\d+) bound\s*\(line (\d+) in ([^)]+)\)')
151+
if 3<len(l:matches)
152+
let a:readResult.mdbg.breakpointBound={
153+
\'fileNameTail':s:pathToVimStyle(l:matches[3]),
154+
\'line':l:matches[2],
155+
\'breakpointNumber':l:matches[1]}
157156
endif
157+
endif
158158
endfunction
159159

160160
function! s:breakpointAdded(readResult,debugger)
161-
if !empty(a:readResult.mdbg.breakpointBound)
162-
let l:breakpointBound=a:readResult.mdbg.breakpointBound
163-
let l:lookFor=l:breakpointBound.fileNameTail.':'.l:breakpointBound.line
164-
let l:lookForRegex='\V'.escape(l:lookFor,'\').'\$'
165-
let l:matchingKeys=filter(keys(a:debugger.state.mdbg.breakpointNumbers),'v:val=~l:lookForRegex')
166-
for l:key in l:matchingKeys
167-
if empty(a:debugger.state.mdbg.breakpointNumbers[l:key])
168-
let a:debugger.state.mdbg.breakpointNumbers[l:key]={'number':l:breakpointBound.breakpointNumber}
169-
endif
170-
endfor
171-
endif
161+
if !empty(a:readResult.mdbg.breakpointBound)
162+
let l:breakpointBound=a:readResult.mdbg.breakpointBound
163+
let l:lookFor=l:breakpointBound.fileNameTail.':'.l:breakpointBound.line
164+
let l:lookForRegex='\V'.escape(l:lookFor,'\').'\$'
165+
let l:matchingKeys=filter(keys(a:debugger.state.mdbg.breakpointNumbers),'v:val=~l:lookForRegex')
166+
for l:key in l:matchingKeys
167+
if empty(a:debugger.state.mdbg.breakpointNumbers[l:key])
168+
let a:debugger.state.mdbg.breakpointNumbers[l:key]={'number':l:breakpointBound.breakpointNumber}
169+
endif
170+
endfor
171+
endif
172172
endfunction
173173

174174
function! s:requestEvaluateExpression(writeAction,debugger)
175-
for l:evalAction in a:writeAction
176-
call a:debugger.writeLine('print '.l:evalAction.expression)
177-
endfor
175+
for l:evalAction in a:writeAction
176+
call a:debugger.writeLine('print '.l:evalAction.expression)
177+
endfor
178178
endfunction
179179

180180
function! s:executeStatements(writeAction,debugger)
181-
for l:evalAction in a:writeAction
182-
if has_key(l:evalAction,'statement')
183-
call a:debugger.writeLine('set '.substitute(l:evalAction.statement,'\v;\s*$','',''))
184-
endif
185-
endfor
181+
for l:evalAction in a:writeAction
182+
if has_key(l:evalAction,'statement')
183+
call a:debugger.writeLine('set '.substitute(l:evalAction.statement,'\v;\s*$','',''))
184+
endif
185+
endfor
186186
endfunction
187187

188188
function! s:readEvaluatedExpressions(pipeName,line,readResult,debugger) dict
189-
if 'out'==a:pipeName
190-
let l:matches=matchlist(a:line,'\v\[[^\]]*\]\s*mdbg\>\s*([^=]+)\=(.*)$')
191-
if 2<len(l:matches)
192-
let l:expression=l:matches[1]
193-
let l:value=l:matches[2]
194-
let a:readResult.std.evaluatedExpression={
195-
\'expression':l:expression,
196-
\'value':l:value}
197-
endif
189+
if 'out'==a:pipeName
190+
let l:matches=matchlist(a:line,'\v\[[^\]]*\]\s*mdbg\>\s*([^=]+)\=(.*)$')
191+
if 2<len(l:matches)
192+
let l:expression=l:matches[1]
193+
let l:value=l:matches[2]
194+
let a:readResult.std.evaluatedExpression={
195+
\'expression':l:expression,
196+
\'value':l:value}
198197
endif
198+
endif
199199
endfunction

doc/vebugger.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
Author: Idan Arye <https://github.com/idanarye/>
55
License: Same terms as Vim itself (see |license|)
66

7-
Version: 1.2.0
7+
Version: 1.2.1
88

99
INTRODUCTION *vebugger*
1010

0 commit comments

Comments
 (0)