+2000-11-16 Christopher Faylor <cgf@redhat.com>
+
+ * thread.c (thread_apply_all_command): Save the command before
+ executing it because it may be modified. Restore the saved command so
+ that the same command is executed on next thread.
+ (thread_apply_command): Same correction.
+
2000-11-16 Michael Snyder <msnyder@cleaver.cygnus.com>
* regcache.c (read_register_bytes): Failing to set register_valid
{
struct thread_info *tp;
struct cleanup *old_chain;
+ struct cleanup *saved_cmd_cleanup_chain;
+ char *saved_cmd;
if (cmd == NULL || *cmd == '\000')
error ("Please specify a command following the thread ID list");
traversing it for "thread apply all". MVS */
target_find_new_threads ();
+ /* Save a copy of the command in case it is clobbered by
+ execute_command */
+ saved_cmd = strdup (cmd);
+ saved_cmd_cleanup_chain = make_cleanup (free, (void *) saved_cmd);
for (tp = thread_list; tp; tp = tp->next)
if (thread_alive (tp))
{
target_pid_to_str (inferior_pid));
#endif
execute_command (cmd, from_tty);
+ strcpy (cmd, saved_cmd); /* Restore exact command used previously */
}
+ do_cleanups (saved_cmd_cleanup_chain);
do_cleanups (old_chain);
}
char *cmd;
char *p;
struct cleanup *old_chain;
+ struct cleanup *saved_cmd_cleanup_chain;
+ char *saved_cmd;
if (tidlist == NULL || *tidlist == '\000')
error ("Please specify a thread ID list");
old_chain = make_cleanup_restore_current_thread (inferior_pid);
+ /* Save a copy of the command in case it is clobbered by
+ execute_command */
+ saved_cmd = strdup (cmd);
+ saved_cmd_cleanup_chain = make_cleanup (free, (void *) saved_cmd);
while (tidlist < cmd)
{
struct thread_info *tp;
target_pid_to_str (inferior_pid));
#endif
execute_command (cmd, from_tty);
+ strcpy (cmd, saved_cmd); /* Restore exact command used previously */
}
}
}
+ do_cleanups (saved_cmd_cleanup_chain);
do_cleanups (old_chain);
}