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

Re: [patchv2] Do not skip prologue for asm (.S) files


Jan Kratochvil writes:
 > On Thu, 25 Jun 2015 22:42:48 +0200, Doug Evans wrote:
 > > Hmmm, so there's an undocumented requirement that minsym_found
 > > and find_function_start_sal work compatibly?
 > > [Which is actually not surprising if you know how linespecs and
 > > breakpoints: we find all the matching minsyms and fullsyms
 > > and then throw away the duplicates. But if these two functions
 > > behave differently then the search for duplicates fails. At least
 > > I'm guessing that's what happened here.]
 >
 > Yes:
> # (gdb) file /root/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.base/breako2 > # Reading symbols from /root/jkratoch/redhat/gdb-clean/gdb/testsuite/gdb.base/breako2...done.
 > # (gdb) break main
 > #-Breakpoint 1 at 0x10000644: file ./gdb.base/break.c, line 43.
 > #-(gdb) PASS: gdb.base/break.exp: breakpoint function, optimized file
 > #+Breakpoint 1 at 0x10000640: main. (2 locations)
 > #### Num     Type           Disp Enb Address            What
 > #### 1       breakpoint     keep y   <MULTIPLE>
> #### 1.1 y 0x0000000010000640 in main at ./gdb.base/break.c:42 > #### 1.2 y 0x0000000010000644 in main at ./gdb.base/break.c:43
 > #+(gdb) FAIL: gdb.base/break.exp: breakpoint function, optimized file
 > # break marker4
 > # Breakpoint 2 at 0x10000aa0: file ./gdb.base/break1.c, line 59.
> # (gdb) PASS: gdb.base/break.exp: breakpoint small function, optimized file
 > #[...]
 > # Continuing.
 > #-720
 > #-Breakpoint 2, marker4 (d=177601976) at ./gdb.base/break1.c:59
> #-59 void marker4 (long d) { values[0].a_field = d; } /* set breakpoint 14 here */ > #-(gdb) PASS: gdb.base/break.exp: run until breakpoint set at small function, optimized file (line bp_location14) > #+Breakpoint 1, main (argc=1, argv=0x3fffffffec48, envp=0x3fffffffec58) at ./gdb.base/break.c:43 > #+43 if (argc == 12345) { /* an unlikely value < 2^16, in case uninited */ /* set breakpoint 6 here */ > #+(gdb) FAIL: gdb.base/break.exp: run until breakpoint set at small function, optimized file
 >
 >
 > > Can you do that, plus add a comment to both minsym_found
 > > and find_function_start_sal stating that we rely on them
 > > working compatibly.
 >
 > Done.  Providing for review the final patch given all the changes.
 >
 >
 > Thanks,
 > Jan
 > gdb/ChangeLog
 > 2015-06-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
 >
 > 	* linespec.c (minsym_found): Reset sal.PC for COMPUNIT_LOCATIONS_VALID
 > 	and language_asm..
 > 	* symtab.c (find_function_start_sal): Likewise.
 >
 > gdb/testsuite/ChangeLog
 > 2015-06-20  Jan Kratochvil  <jan.kratochvil@redhat.com>
 >
 > 	* gdb.arch/amd64-prologue-skip.S: New file.
 > 	* gdb.arch/amd64-prologue-skip.exp: New file.

LGTM.

Thanks!


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