* python/python.c (execute_gdb_command): Copy the argument text.
authorTom Tromey <tromey@redhat.com>
Mon, 9 Nov 2009 18:29:12 +0000 (18:29 +0000)
committerTom Tromey <tromey@redhat.com>
Mon, 9 Nov 2009 18:29:12 +0000 (18:29 +0000)
gdb/ChangeLog
gdb/python/python.c

index a63582a38650d66ff5eada59ab5405e3569baa9b..1fe42c6eeefab96c1770e81e757627bfbe0d890d 100644 (file)
@@ -1,3 +1,7 @@
+2009-11-09  Tom Tromey  <tromey@redhat.com>
+
+       * python/python.c (execute_gdb_command): Copy the argument text.
+
 2009-11-06  Vladimir Prus  <vladimir@codesourcery.com>
 
        * m68k-tdep.c (m68k_convert_register_p): Correct
index 254bd280a16744b138a27d48a29a75fb66da8862..77a00693ea38eda4fa0a4a89c369d13747fb781d 100644 (file)
@@ -309,7 +309,11 @@ execute_gdb_command (PyObject *self, PyObject *args)
 
   TRY_CATCH (except, RETURN_MASK_ALL)
     {
-      execute_command (arg, from_tty);
+      /* Copy the argument text in case the command modifies it.  */
+      char *copy = xstrdup (arg);
+      struct cleanup *cleanup = make_cleanup (xfree, copy);
+      execute_command (copy, from_tty);
+      do_cleanups (cleanup);
     }
   GDB_PY_HANDLE_EXCEPTION (except);