summaryrefslogtreecommitdiffstats
path: root/usr.sbin/bhyve/bhyverun.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/bhyve/bhyverun.c')
-rw-r--r--usr.sbin/bhyve/bhyverun.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/usr.sbin/bhyve/bhyverun.c b/usr.sbin/bhyve/bhyverun.c
index f4a9111..b2354c9 100644
--- a/usr.sbin/bhyve/bhyverun.c
+++ b/usr.sbin/bhyve/bhyverun.c
@@ -134,6 +134,7 @@ usage(int code)
" -A: create an ACPI table\n"
" -g: gdb port\n"
" -c: # cpus (default 1)\n"
+ " -C: include guest memory in core file\n"
" -p: pin 'vcpu' to 'hostcpu'\n"
" -H: vmexit from the guest on hlt\n"
" -P: vmexit from the guest on pause\n"
@@ -642,19 +643,20 @@ int
main(int argc, char *argv[])
{
int c, error, gdb_port, err, bvmcons;
- int max_vcpus, mptgen;
+ int dump_guest_memory, max_vcpus, mptgen;
struct vmctx *ctx;
uint64_t rip;
size_t memsize;
bvmcons = 0;
+ dump_guest_memory = 0;
progname = basename(argv[0]);
gdb_port = 0;
guest_ncpus = 1;
memsize = 256 * MB;
mptgen = 1;
- while ((c = getopt(argc, argv, "abehwxAHIPWYp:g:c:s:m:l:U:")) != -1) {
+ while ((c = getopt(argc, argv, "abehwxACHIPWYp:g:c:s:m:l:U:")) != -1) {
switch (c) {
case 'a':
x2apic_mode = 0;
@@ -674,6 +676,9 @@ main(int argc, char *argv[])
case 'c':
guest_ncpus = atoi(optarg);
break;
+ case 'C':
+ dump_guest_memory = 1;
+ break;
case 'g':
gdb_port = atoi(optarg);
break;
@@ -755,6 +760,8 @@ main(int argc, char *argv[])
fbsdrun_set_capabilities(ctx, BSP);
+ if (dump_guest_memory)
+ vm_set_memflags(ctx, VM_MEM_F_INCORE);
err = vm_setup_memory(ctx, memsize, VM_MMAP_ALL);
if (err) {
fprintf(stderr, "Unable to setup memory (%d)\n", err);
OpenPOWER on IntegriCloud