This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]