fix n-i-bz report error for vgdb snapshot requested before execution

Massif does not accept to take snapshots of heap before execution has started.
So, if such a snapshot is requested (using vgdb and option --vgdb-error=0),
then such a snapshot must be refused rather than causing an assert.
(problem reported by dark_footix@yahoo.fr)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13015
This commit is contained in:
Philippe Waroquiers 2012-09-24 21:50:16 +00:00
parent 76e93ca812
commit ab2d33788e
2 changed files with 10 additions and 2 deletions

2
NEWS
View File

@ -32,7 +32,7 @@ m = merged into 3_8_BRANCH
305948 [390] ppc64: code generation for ShlD64 / ShrD64 asserts
306054 [390] s390x: Condition code computation for convert-to-int/logical
307155 [390] filter_gdb should filter out syscall-template.S T_PSEUDO
n-i-bz [390] report error for vgdb snapshot requested before execution
Release 3.8.1 (19 September 2012)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -2392,9 +2392,17 @@ static void handle_snapshot_monitor_command (Char *filename, Bool detailed)
{
Snapshot snapshot;
if (!clo_pages_as_heap && !have_started_executing_code) {
// See comments of variable have_started_executing_code.
VG_(gdb_printf)
("error: cannot take snapshot before execution has started\n");
return;
}
clear_snapshot(&snapshot, /* do_sanity_check */ False);
take_snapshot(&snapshot, Normal, get_time(), detailed);
write_snapshots_to_file ((filename == NULL) ? (Char*) "massif.vgdb.out" : filename,
write_snapshots_to_file ((filename == NULL) ?
(Char*) "massif.vgdb.out" : filename,
&snapshot,
1);
delete_snapshot(&snapshot);