mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-20 15:03:31 +08:00
Don't read agent symbols when disabled
This avoids unnecessary work, and becomes important with the patch in https://sourceware.org/ml/gdb-patches/2019-10/msg01143.html gdb/ChangeLog: 2019-10-31 Christian Biesinger <cbiesinger@google.com> * agent.c (set_can_use_agent): When the setting is turned on, look up agent symbols if we don't have them yet. (agent_new_objfile): Don't look up agent symbols when the agent setting is off. Change-Id: I6523a5640c95d38299998050a6c620e51096e8ed
This commit is contained in:
parent
33cb1647d6
commit
8d6efaa20d
@ -1,3 +1,10 @@
|
||||
2019-10-31 Christian Biesinger <cbiesinger@google.com>
|
||||
|
||||
* agent.c (set_can_use_agent): When the setting is turned on,
|
||||
look up agent symbols if we don't have them yet.
|
||||
(agent_new_objfile): Don't look up agent symbols when the agent
|
||||
setting is off.
|
||||
|
||||
2019-10-31 Christian Biesinger <cbiesinger@google.com>
|
||||
|
||||
* config.in: Regenerate.
|
||||
|
19
gdb/agent.c
19
gdb/agent.c
@ -20,6 +20,8 @@
|
||||
#include "gdbcmd.h"
|
||||
#include "target.h"
|
||||
#include "gdbsupport/agent.h"
|
||||
#include "observable.h"
|
||||
#include "objfiles.h"
|
||||
|
||||
/* Enum strings for "set|show agent". */
|
||||
|
||||
@ -46,20 +48,29 @@ show_can_use_agent (struct ui_file *file, int from_tty,
|
||||
static void
|
||||
set_can_use_agent (const char *args, int from_tty, struct cmd_list_element *c)
|
||||
{
|
||||
if (target_use_agent (can_use_agent == can_use_agent_on) == 0)
|
||||
bool can_use = (can_use_agent == can_use_agent_on);
|
||||
if (can_use && !agent_loaded_p ())
|
||||
{
|
||||
/* Since the setting was off, we may not have observed the objfiles and
|
||||
therefore not looked up the required symbols. Do so now. */
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
if (agent_look_up_symbols (objfile) == 0)
|
||||
break;
|
||||
}
|
||||
if (target_use_agent (can_use) == 0)
|
||||
/* Something wrong during setting, set flag to default value. */
|
||||
can_use_agent = can_use_agent_off;
|
||||
}
|
||||
|
||||
#include "observable.h"
|
||||
#include "objfiles.h"
|
||||
|
||||
static void
|
||||
agent_new_objfile (struct objfile *objfile)
|
||||
{
|
||||
if (objfile == NULL || agent_loaded_p ())
|
||||
return;
|
||||
|
||||
if (can_use_agent == can_use_agent_off)
|
||||
return;
|
||||
|
||||
agent_look_up_symbols (objfile);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user