[PATCH] [OBV] gdbserver: Only write ipa_tdesc_idx if agent is actually loaded.

Marcin Kościelnicki
2016-03-02T16:21:12Z

Fixes rather embarassing gdb.trace regressions.

gdb/gdbserver/ChangeLog:

* tracepoint.c (cmd_qtstart): Only set ipa_tdesc_idx if agent
is actually loaded.
---
Whoops, now that's a brown paper bag bug. Pushed as obvious.

gdb/gdbserver/ChangeLog | 5 +++++
gdb/gdbserver/tracepoint.c | 11 +++++++----
2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index 4c8df3f..40150d7 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,3 +1,8 @@
+2016-03-02 Marcin KoÅ›cielnicki <koriakin@0x04.net>
+
+ * tracepoint.c (cmd_qtstart): Only set ipa_tdesc_idx if agent
+ is actually loaded.
+
2016-02-25 Marcin KoÅ›cielnicki <koriakin@0x04.net>

* linux-s390-low.c (s390_num_regs_3264): Define on 31-bit too.
diff --git a/gdb/gdbserver/tracepoint.c b/gdb/gdbserver/tracepoint.c
index dbd0b46..383fb71 100644
--- a/gdb/gdbserver/tracepoint.c
+++ b/gdb/gdbserver/tracepoint.c
@@ -3214,10 +3214,13 @@ cmd_qtstart (char *packet)

*packet = '\0';

- /* Tell IPA about the correct tdesc. */
- if (write_inferior_integer (ipa_sym_addrs.addr_ipa_tdesc_idx,
- target_get_ipa_tdesc_idx ()))
- error ("Error setting ipa_tdesc_idx variable in lib");
+ if (agent_loaded_p ())
+ {
+ /* Tell IPA about the correct tdesc. */
+ if (write_inferior_integer (ipa_sym_addrs.addr_ipa_tdesc_idx,
+ target_get_ipa_tdesc_idx ()))
+ error ("Error setting ipa_tdesc_idx variable in lib");
+ }

/* Start out empty. */
if (agent_loaded_p ())
--
2.7.1