Remove verbose code from backtrace command
authorTom Tromey <tom@tromey.com>
Fri, 23 Mar 2018 16:40:00 +0000 (10:40 -0600)
committerTom Tromey <tom@tromey.com>
Tue, 27 Mar 2018 03:57:15 +0000 (21:57 -0600)
In https://sourceware.org/ml/gdb-patches/2017-06/msg00741.html,
Pedro asks:

> Doesn't the "info verbose on" bit affect frame filters too?

The answer is that yes, it could.  However, it's not completely
effective, because the C code can't guess how many frames might need
to be unwound to satisfy the request -- a frame filter will request as
many frames as it needs.

Also, I tried removing this code from backtrace, and I think the
result is better without it.  In particular, now the expansion line
occurs just before the frame that caused the expansion, like:

    (gdb) bt no-filters
    #0  0x00007ffff576cecd in poll () from /lib64/libc.so.6
    Reading in symbols for ../../binutils-gdb/gdb/event-loop.c...done.
    #1  0x00000000007ecc33 in gdb_wait_for_event (block=1)
at ../../binutils-gdb/gdb/event-loop.c:772
    #2  0x00000000007ec006 in gdb_do_one_event ()
at ../../binutils-gdb/gdb/event-loop.c:347
    #3  0x00000000007ec03e in start_event_loop ()
at ../../binutils-gdb/gdb/event-loop.c:371
    Reading in symbols for ../../binutils-gdb/gdb/main.c...done.
    #4  0x000000000086693d in captured_command_loop (
Reading in symbols for ../../binutils-gdb/gdb/exceptions.c...done.
    data=0x0) at ../../binutils-gdb/gdb/main.c:325

So, I am proposing this patch to simply remove this code.

gdb/ChangeLog
2018-03-26  Tom Tromey  <tom@tromey.com>

* stack.c (backtrace_command_1): Remove verbose code.

gdb/ChangeLog
gdb/stack.c

index 5da7e93ba6dd1e9a625ecf2a13e95c26aad54895..64130c5392a7cce25d694bd6570b27962dca7453 100644 (file)
@@ -1,3 +1,7 @@
+2018-03-26  Tom Tromey  <tom@tromey.com>
+
+       * stack.c (backtrace_command_1): Remove verbose code.
+
 2018-03-26  Tom Tromey  <tom@tromey.com>
 
        * python/py-framefilter.c (py_print_type): Don't catch
index 427b182c7f5a7c31f6e13b52f9839e29cf52b67c..9fdc9eece2884c093489c62f47b0d5e8f5b4ed14 100644 (file)
@@ -1780,24 +1780,6 @@ backtrace_command_1 (const char *count_exp, frame_filter_flags flags,
          count = -1;
        }
 
-      if (info_verbose)
-       {
-         /* Read in symbols for all of the frames.  Need to do this in a
-            separate pass so that "Reading in symbols for xxx" messages
-            don't screw up the appearance of the backtrace.  Also if
-            people have strong opinions against reading symbols for
-            backtrace this may have to be an option.  */
-         i = count;
-         for (fi = trailing; fi != NULL && i--; fi = get_prev_frame (fi))
-           {
-             CORE_ADDR pc;
-
-             QUIT;
-             pc = get_frame_address_in_block (fi);
-             expand_symtab_containing_pc (pc, find_pc_mapped_section (pc));
-           }
-       }
-
       for (i = 0, fi = trailing; fi && count--; i++, fi = get_prev_frame (fi))
        {
          QUIT;