This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
multiple-location breakpoint location
- From: Joel Brobecker <brobecker at adacore dot com>
- To: gdb at sourceware dot org
- Date: Thu, 4 Nov 2010 12:55:21 -0700
- Subject: multiple-location breakpoint location
Assuming I have a function where the generated code and debug info
looks like this:
function bla:
# line 5
# line 6
lexical_block:
# line 5
end lexical_block;
end bla;
If the user breaks on line 5 using "foo.adb:5", do you think that
the debugger should insert 2 breakpoints?
I looked at the manual, and it only provides example situations where
multiple-location breakpoints should be inserted. Looking at the code
for more details, I am a little confused. See expand_line_sal_maybe,
which first does an expansion:
* expanded = expand_line_sal (sal)
The comment for that function says:
/* Compute a set of all sals in all program spaces that correspond to
same file and line as SAL and return those. If there are several
sals that belong to the same block, only one sal for the block is
included in results. */
* And then expand_line_sal_maybe eliminates further entries by
comparing the associated function name to the function name
associated to the original PC.
I think I'm missing part of the picture, but we can still discuss and
decide exactly what multiple-location breakpoints mean, from the user's
point of view.
Interestingly enough, I have the following slightly different situation:
function bla:
# line 5
lexical_block:
# line 6
# line 7
lexical_block:
# line 6
# line 8
end lexical_block;
end lexical_block;
end function;
In that case, a breakpoint on line 6 results in 1 breakpoint location.
This seems to support the suggestion that we should only have one
location in the first situation.
Thoughts?
--
Joel