This is the mail archive of the gdb-patches@sources.redhat.com 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]

Re: gdb 6.3 C++ breakpoint in constructor/destructor patch


Hello,

ok, second try...

This patch only modifies breakpoint.c
It "expands" the sals returned by decode_line_1().
Means all symtabs are searched for a linetable entries that match the required
filename and lineno (returned by decode_line_1()) and then
new sal's are created, and this creates (in some cases, e.g. C++ constructors of
gcc 4) more then one breakpoint
at the same line and file, but at different pc's.


The expand is done in a new function called breakpoint_sals_expand().


On a i686 platform with gcc 4.0 i had no problems with this modification so far.
I think, it works good enough for me ;) At least till the gdb experts fix this
problem themselfs ;)


-Thomas Maier

On Sun, 1 May 2005 17:56:08 -0400, Daniel Jacobowitz <drow@false.org> wrote:

On Sun, May 01, 2005 at 10:53:05PM +0200, Thomas Maier wrote:
Ok, hmm, then the code in find_line_symtab() must not return one symtab,
which is used to find one or more references to the lineno, it must return
a list of symtabs with references to this lineno. Means, a similar search
over all symtabs which is already done in find_line_symtab().
Would that be enough to handle the file:lineno case?


(If yes it think a new function like find_multi_line_symtab() is the best
way to do it, then in decode_all_digits() fill in the sals with the found
symtabs + linenos)

It's a representation problem. I found it much more effective to have decode_line_1 only return one symtab_and_line structure, and then expand them to multiple PCs later, regardless of whether the symtab returned was the only relevant one. Otherwise, things like "list" will get confused.


Attachment: patch-gdb-6.3-c++-bpconstr
Description: Binary data


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