Do not capture updated 'pc' in add_local_symbols
authorTom Tromey <tom@tromey.com>
Tue, 15 Mar 2022 22:13:57 +0000 (16:13 -0600)
committerTom Tromey <tom@tromey.com>
Tue, 15 Mar 2022 22:13:57 +0000 (16:13 -0600)
Simon pointed out that commit 13835d88 ("Use function view when
iterating over block symbols") caused a regression.  The bug is that
the new closure captures 'pc' by reference, but later code updates
this variable -- but the earlier code did not update the callback
structure with the new value.

This patch restores the old behavior by using a new varible name in an
inner scope.

gdb/tracepoint.c

index 67b3118288006a9a949766c04ccc84a2e765a673..c45a9611abd0642187c3b46742e3ca35a84a833a 100644 (file)
@@ -1082,8 +1082,8 @@ collection_list::add_local_symbols (struct gdbarch *gdbarch, CORE_ADDR pc,
     }
   else
     {
-      pc = get_pc_function_start (pc);
-      block = block_for_pc (pc);
+      CORE_ADDR fn_pc = get_pc_function_start (pc);
+      block = block_for_pc (fn_pc);
       if (block == NULL)
        {
          warning (_("Can't collect args; no symbol table info available."));