Previous: How the Source is Found, Up: Source Location Printing [Contents][Index]
Source location information is only available when the debug
optimization quality is at least 2
. If source location information is
unavailable, the source commands will give an error message.
If source location information is available, but the source location is unknown because of an interrupt or unexpected hardware error (see unknown-locations), then the command will print:
Unknown location: using block start.
and then proceed to print the source location for the start of the basic block enclosing the code location. It’s a bit complicated to explain exactly what a basic block is, but here are some properties of the block start location:
if
,
cond
, or
) will intervene between the block start and
the true location (but note that some conditionals present in the
original source could be optimized away.) Function calls do not
end basic blocks.
block
special form are totally unrelated to the
compiler’s basic block.
In other words, the true location lies between the printed location and the next conditional (but watch out because the compiler may have changed the program on you.)
Previous: How the Source is Found, Up: Source Location Printing [Contents][Index]