gdbserver crash running gdb.threads/non-ldr-exc-1.exp

This fixes a gdbserver crash when running
gdb.threads/non-ldr-exc-1.exp with "maint set target-non-stop on".
The problem is that qSymbol is called when gdbserver has
current_thread == NULL.

gdb/gdbserver/ChangeLog:
2015-11-30  Pedro Alves  <palves@redhat.com>

	* gdbthread.h (find_any_thread_of_pid): Declare.
	* inferiors.c (thread_of_pid, find_any_thread_of_pid): New
	functions.
	* server.c (handle_query): If current_thread is NULL, look for
	another thread of the selected process.
This commit is contained in:
Pedro Alves 2015-11-30 16:05:15 +00:00
parent 066f6b6edc
commit 34c6591498
4 changed files with 59 additions and 0 deletions

View file

@ -80,6 +80,10 @@ struct thread_info *get_first_thread (void);
struct thread_info *find_thread_ptid (ptid_t ptid);
/* Find any thread of the PID process. Returns NULL if none is
found. */
struct thread_info *find_any_thread_of_pid (int pid);
/* Get current thread ID (Linux task ID). */
#define current_ptid (current_thread->entry.id)