[Dwarf-discuss] Purpose of basic_block flag in line number table?

Cary Coutant cary
Wed Jul 19 21:10:20 GMT 2006


I've got a question about the basic_block flag in the DWARF line  
number table.

It seems to me that the point of this flag is to enable efficient  
single stepping -- i.e., instead of stepping one instruction at a  
time until you get to a different line number, the debugger could  
look down the line table until it got to either a new source line or  
the end of a basic block. If it found a new line before the end of  
the basic block, it could set a breakpoint and free-run, fairly  
confident that it'll hit that breakpoint. Otherwise, it could set a  
breakpoint at the end of the basic block, then single step to  
establish where it's going next (which will probably be at a new  
source line).

Is this in fact what the flag is for, or is there some other purpose  
that I'm overlooking?

What about step-into as opposed to step-over? The DWARF spec extends  
the concept of basic block to include calls, so there'd be no way for  
the debugger to step into the call and stop without single stepping  
or disassembling instructions.

-cary





More information about the Dwarf-discuss mailing list