Stateful BreakpointsEric Bodden
“After closing a stream sdo not read from s any longer.”
2
APIs come with usage rules
“After closing a stream sdo not read from s any longer.”
2
open closed error
read close close,read
close read
APIs come with usage rules
Idea
3
Automatically halt program when
it violates a rule
4
read
closeclose(file)
read(theFile)
Conditional Breakpointscannot refer to “old” state
4
read
closeclose(file)
read(theFile)
Conditional Breakpointscannot refer to “old” state
4
read
closeclose(file)
read(theFile)
file==theFile
Conditional Breakpointscannot refer to “old” state
4
read
closeclose(file)
read(theFile)
file==theFile
Conditional Breakpointscannot refer to “old” state
5
close(f1)
read(f)close(f)
Proposal: Stateful Breakpoints
5
close(f1)
read(f)close(f)
Proposal: Stateful Breakpoints
5
close(f1)read(f2)
read(f)close(f)
Proposal: Stateful Breakpoints
5
close(f1)read(f2)read(f1)
read(f)close(f)
Proposal: Stateful Breakpoints
5
close(f1)read(f2)read(f1)
read(f)close(f)
Proposal: Stateful Breakpoints
6
Current Prototype
6
Current Prototype
6
Current Prototype
6
Current Prototype
6
Current Prototype
6
Current Prototype
Use Cases
7
1.) Simplify Debugging
2.) Attach SB to bug report
3.) Ship SBs with library
8
Implementation
Builds on MOPBox library:http://mopbox.googlecode.com/Demo at RV 2007
Fire parameterized events at MOPBox monitors
MOPBox calls back when regex matches
9
Open Questions
Anything missing?
Maybe still too hard to specify?
Can Stateful Breakpoints be inferred?
10
Related WorkControl-flow BreakpointsChern & De Volder, AOSD 2007
Omniscient/Re-executing DebuggersPothier et al., OOPSLA 2007Mirghasemi et al., ESEC/FSE 2011
Typestate verification, runtime monitoringBierhoff & Aldrich, OOPSLA 2007Allan et al., OOPSLA 2005 (Tracematches)Chen & Rosu, OOPSLA 2007 (JavaMOP)
Fault localization toolsAyewah et al., OOPSLA 2007 (FindBugs)
here!
11
http://bodden.de/sbp/
close(f1)read(f2)read(f1)
read(f)close(f)
http://bodden.de/mopbox/
11
http://bodden.de/sbp/
close(f1)read(f2)read(f1)
read(f)close(f)
http://bodden.de/mopbox/