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: [PATCH] Whack some dead code


On Tuesday 30 March 2010 01:25:11, Stan Shebs wrote:
> A while back, Vladimir Prus noticed a chunk of dead code in 
> trace_find_line_command; basically, if you don't have symbolic info, 
> there is no plausible fallback for line numbers, you just have to give 
> up.  Committed to trunk.

>     * tracepoint.c (trace_find_line_command): Remove dead code.

Errr, what does "dead" mean exactly?  It's certainly exercisable, just
like the comment in the code suggests:

 (top-gdb) help tfind line
 Select a trace frame by source line.
 Argument can be a line number (with optional source file),
 a function name, or '*' followed by an address.
 Default argument is 'the next source line that was traced'.

 (top-gdb) frame
 #0  0x00007ffff6b420a0 in memset () from /lib/libc.so.6

 (top-gdb) tfind  line *(long)$rip
 TFIND: No line number information available for address 0x7ffff6b420a0 <memset>;
  -- will attempt to find by PC.
 Found trace frame 0, tracepoint -1
 #0  0x00007ffff6b420a0 in memset () from /lib/libc.so.6

( nevermind the "found some trace frame" bug :-) )

>     if (sal.symtab == 0)
> !     {
> !       printf_filtered ("TFIND: No line number information available");
> !       if (sal.pc != 0)
> !       {
> !         /* This is useful for "info line *0x7f34".  If we can't
> !            tell the user about a source line, at least let them
> !            have the symbolic address.  */
> !         printf_filtered (" for address ");
> !         wrap_here ("  ");
> !         print_address (get_current_arch (), sal.pc, gdb_stdout);
> !         printf_filtered (";\n -- will attempt to find by PC. \n");
> !       }
> !         else
> !       {
> !         printf_filtered (".\n");
> !         return;               /* No line, no PC; what can we do?  */
> !       }
> !     }

This somewhat matches "info line" (and this code seems to have been
copied from there):

 (top-gdb) info line *(long)$rip
 No line number information available for address 0x7ffff6b420a0 <memset>

Now, if the "-- will attempt to find by PC." fallback, or even just
the the "at least let them have the symbolic address" bit
aren't useful, that's another story.

-- 
Pedro Alves


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