[PATCH] call observer_notify_new_objfile after the attach command

Adrian Sendroiu adrian.sendroiu@freescale.com
Wed Jul 9 13:51:00 GMT 2014


When debugging a remote bare-metal target which implements the gdb protocol,
using target extended-remote + attach, gdb will not send the qSymbol packet,
even if a file was previously specified using file or symbol-file.

Normally gdb would call remote_check_symbols in several places: the solib
inferior hook, the add_vsyscall_page hook or if the executable file changed
in the time passed between the file and the attach commands. Since none of these
conditions hold in the above scenario (no shared libraries are used and no
vsyscall page is present), gdb won't send a qSymbol packet.

To fix this problem this patch calls observer_notify_new_objfile after the attach
command is completed, if such a symbol file is present.
---
 gdb/infcmd.c |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/gdb/infcmd.c b/gdb/infcmd.c
index 14736a5..e491b5d 100644
--- a/gdb/infcmd.c
+++ b/gdb/infcmd.c
@@ -2368,11 +2368,15 @@ attach_command_post_wait (char *args, int from_tty, int async_exec)
 	  exec_file_attach (full_exec_path, from_tty);
 	  symbol_file_add_main (full_exec_path, from_tty);
 	}
+      else if (symfile_objfile)
+	observer_notify_new_objfile(symfile_objfile);
     }
   else
     {
       reopen_exec_file ();
       reread_symbols ();
+
+      observer_notify_new_objfile(symfile_objfile);
     }
 
   /* Take any necessary post-attaching actions for this platform.  */
-- 
1.7.9.5



More information about the Gdb-patches mailing list