summaryrefslogtreecommitdiff
path: root/gdb/linux-record.c
diff options
context:
space:
mode:
authorHui Zhu <teawater@gmail.com>2010-06-22 02:15:45 +0000
committerHui Zhu <teawater@gmail.com>2010-06-22 02:15:45 +0000
commite726bfc98618407781409c3fd1c7a04fc8516e3d (patch)
tree4d63eb4abbb63a5309fdfaca8726734d4cd3327e /gdb/linux-record.c
parentf66065f72a8d0df48829b337c5d516d92d51dd66 (diff)
downloadgdb-e726bfc98618407781409c3fd1c7a04fc8516e3d.tar.gz
2010-06-22 Hui Zhu <teawater@gmail.com>
* i386-tdep.c (i386_record_lea_modrm): Change warning to query. (i386_process_record): Ditto. * record.c (record_memory_query): New variable. (_initialize_record): New command "set record memory-query". * record.h (record_memory_query): New extern. 2010-06-22 Hui Zhu <teawater@gmail.com> * gdb.texinfo: (Process Record and Replay): Add documentation for command "set record memory-query".
Diffstat (limited to 'gdb/linux-record.c')
-rw-r--r--gdb/linux-record.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/gdb/linux-record.c b/gdb/linux-record.c
index 1311f001d26..f07a889f671 100644
--- a/gdb/linux-record.c
+++ b/gdb/linux-record.c
@@ -695,21 +695,26 @@ record_linux_system_call (enum gdb_syscall syscall,
case gdb_sys_munmap:
{
- int q;
ULONGEST len;
regcache_raw_read_unsigned (regcache, tdep->arg1,
&tmpulongest);
regcache_raw_read_unsigned (regcache, tdep->arg2, &len);
- target_terminal_ours ();
- q = yquery (_("The next instruction is syscall munmap. "
- "It will free the memory addr = 0x%s len = %u. "
- "It will make record target get error. "
- "Do you want to stop the program?"),
- OUTPUT_REG (tmpulongest, tdep->arg1), (int) len);
- target_terminal_inferior ();
- if (q)
- return 1;
+ if (record_memory_query)
+ {
+ int q;
+
+ target_terminal_ours ();
+ q = yquery (_("\
+The next instruction is syscall munmap.\n\
+It will free the memory addr = 0x%s len = %u.\n\
+It will make record target cannot record some memory change.\n\
+Do you want to stop the program?"),
+ OUTPUT_REG (tmpulongest, tdep->arg1), (int) len);
+ target_terminal_inferior ();
+ if (q)
+ return 1;
+ }
}
break;