aboutsummaryrefslogtreecommitdiff
path: root/gdb/kod.c
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2002-03-17 19:29:37 +0000
committerAndrew Cagney <cagney@redhat.com>2002-03-17 19:29:37 +0000
commitb51450c9ff9fe4a30bdc760802e69d313345c838 (patch)
tree381a11ec6f26129d1c8c372ed91c3297595c5164 /gdb/kod.c
parent8e694ecf1662b94f20df6427b91967579f8cca11 (diff)
downloadgdb-b51450c9ff9fe4a30bdc760802e69d313345c838.zip
gdb-b51450c9ff9fe4a30bdc760802e69d313345c838.tar.gz
gdb-b51450c9ff9fe4a30bdc760802e69d313345c838.tar.bz2
* kod.c (kod_set_os): Revert previous change. Is called by ``info
set'' and this leads to a core dump. Move xstrdup of operating_system to after check that it is not NULL.
Diffstat (limited to 'gdb/kod.c')
-rw-r--r--gdb/kod.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/gdb/kod.c b/gdb/kod.c
index 68ce18c..8e8a716 100644
--- a/gdb/kod.c
+++ b/gdb/kod.c
@@ -132,6 +132,15 @@ kod_set_os (char *arg, int from_tty, struct cmd_list_element *command)
{
char *p;
+ /* NOTE: cagney/2002-03-17: This function gets called by the command
+ ``info set'' with COMMAND pointing to a show_cmd rather than a
+ set command. This the test below is removed, a core dump results
+ (think about what happens when OPERATING_SYSTEM is NULL). The
+ wiered thing is that all other ``set'' handlers don't need this
+ test. */
+ if (command->type != set_cmd)
+ return;
+
/* If we had already had an open OS, close it. */
if (gdb_kod_close)
(*gdb_kod_close) ();
@@ -142,7 +151,6 @@ kod_set_os (char *arg, int from_tty, struct cmd_list_element *command)
delete_cmd (old_operating_system, &infolist);
xfree (old_operating_system);
}
- old_operating_system = xstrdup (operating_system);
if (! operating_system || ! *operating_system)
{
@@ -157,6 +165,8 @@ kod_set_os (char *arg, int from_tty, struct cmd_list_element *command)
{
char *kodlib;
+ old_operating_system = xstrdup (operating_system);
+
load_kod_library (operating_system);
kodlib = (*gdb_kod_open) (gdb_kod_display, gdb_kod_query);