# US 2014/0196040 A1 · Virtual machine crash file generation techniques

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0196040 A1
- Document ID: US20140196040A1
- Status: Published application
- Kind: A1
- Application number: 14/203,488
- Filed: 2014-03-10
- Published: 2014-07-10
- Earliest claimed: 2010-03-31
- Assignees: Microsoft Corporation
- Applicants: Microsoft Corporation
- Inventors: Andrew Nicholas; Rich Yampell; Jacob Oshins; Rene Antonio Vega
- Web page: https://patentgrep.com/patent/US20140196040A1

## CPC

- G06F 9/45545: {Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 11/0712: {in a virtual computing platform, e.g. logically partitioned systems}
- G06F 11/0778: {Dumping, i.e. gathering error/state information after a fault for later diagnosis}
- G06F 11/0787: {Storage of error reports, e.g. persistent data storage, storage using memory protection}
- G06F 2009/45579: {I/O management, e.g. providing access to device drivers or storage}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques for creating crash data in a virtualized environment are disclosed. In an embodiment of the present disclosure the techniques can be used when a guest operating system within a virtual machine may not have a sufficient mechanism for generating crash data.

## Claims

### Claim 1

A computer system, comprising:
a computing device;
one or more memories having stored thereon computer readable instructions that, upon execution by the computing device, cause the system at least to:
load a controller emulator into resources of a virtual machine operable on the computing device;
configure a communications bus to transmit crash data from a guest operating system to a virtual machine monitor;
receive crash data for the guest operating system of the virtual machine, the crash data based at least in part on processing by the controller emulator, the crash data received through the communications bus; and
send the crash data to the virtual machine upon determining that the guest operating system of the virtual machine has resumed operation.

### Claim 2 (depends on 1)

The system of claim 1, further comprising one or more memories having stored thereon computer readable instructions that, upon execution by the computing device, cause the system at least to:
send the crash data for the guest operating to a virtual machine monitor.

### Claim 3 (depends on 1)

The system of claim 1, further comprising one or more memories having stored thereon computer readable instructions that, upon execution by the computing device, cause the system at least to:
send debug metadata associated with the guest operating system to a virtual machine monitor.

### Claim 4 (depends on 1)

The system of claim 1, further comprising one or more memories having stored thereon computer readable instructions that, upon execution by the computing device, cause the system at least to:
store the crash data in memory associated with a virtual disk; and
send the crash data to the virtual machine by attaching the virtual disk to the guest operating system in response to determining that the guest operating system of the virtual machine has resumed operation.

### Claim 5 (depends on 1)

The system of claim 1, wherein the computing device is configured to have a communications bus not reliant on the resources of the guest operating system.

### Claim 6 (depends on 1)

The system of claim 1, wherein loading the controller emulator does not disturb contents of memory of the virtual machine.

### Claim 7

A computer-implemented method, comprising:
causing a controller emulator to execute in a virtual machine;
configuring a communications bus to transmit crash data from a guest operating system to a virtual machine monitor;
receiving, at the virtual machine monitor, crash data for the guest operating system of the virtual machine, the crash data based at least in part on processing by the controller emulator, the crash data received through the communications bus; and
processing, by the virtual machine, the crash data based at least in part on the virtual machine resuming operation.

### Claim 8 (depends on 7)

The method of claim 7, wherein the controller emulator causes virtual machine monitor interrupts.

### Claim 9 (depends on 7)

The method of claim 7, wherein the virtual machine monitor is a hypervisor.

### Claim 10 (depends on 7)

The method of claim 7, further comprising:
storing the crash data in memory associated with a virtual disk; and
sending the crash data to the virtual machine by attaching the virtual disk to the guest operating system in response to determining that the guest operating system of the virtual machine has resumed operation.

### Claim 11 (depends on 7)

The method of claim 7, further comprising:
sending debug metadata associated with the guest operating system to the virtual machine monitor.

### Claim 12 (depends on 7)

The method of claim 7, wherein the communications bus is not reliant on resources of the guest operating system.

### Claim 13 (depends on 7)

The method of claim 7, further comprising:
mounting, by the virtual machine monitor, a boot disk of the guest operating system; and
storing the crash data in a predetermined location on the boot disk.

### Claim 14

A computer readable physical storage device including executable instructions that, upon execution by a computing device, cause the computing device at least to:
load a controller emulator into resources of a virtual machine operating on the computing device without disturbing contents of memory of the virtual machine;
configuring a communications bus to transmit crash data from a guest operating system to a virtual machine monitor;
receive crash data for the guest operating system of the virtual machine, the crash data based at least in part on processing by the controller emulator, the crash data received by the communications bus; and
send the crash data to the virtual machine upon determining that the guest operating system of the virtual machine has resumed operation.

### Claim 15 (depends on 14)

The computer readable physical storage device of claim 14, comprising further instructions that, upon execution by the computing device, cause the computing device at least to:
send the crash data for the guest operating to the virtual machine monitor.

### Claim 16 (depends on 14)

The computer readable physical storage device of claim 14, comprising further instructions that, upon execution by the computing device, cause the computing device at least to:
send debug metadata associated with the guest operating system to the virtual machine monitor.

### Claim 17 (depends on 14)

The computer readable physical storage device of claim 14, comprising further instructions that, upon execution by the computing device, cause the computing device at least to:
store the crash data in memory associated with a virtual disk; and
send the crash data to the virtual machine by attaching the virtual disk to the guest operating system in response to determining that the guest operating system of the virtual machine has resumed operation.

### Claim 18 (depends on 14)

The computer readable physical storage device of claim 14, comprising further instructions that, upon execution by the computing device, cause the computing device at least to:
mounting, by the virtual machine monitor, a boot disk of the guest operating system; and
storing the crash data in a predetermined location on the boot disk.

### Claim 19 (depends on 14)

The computer readable physical storage device of claim 14, comprising further instructions that, upon execution by the computing device, cause the computing device at least to:
configure the guest operating system to not exit from boot services.

### Claim 20 (depends on 14)

The computer readable physical storage device of claim 14, comprising further instructions that, upon execution by the computing device, cause the computing device at least to:
send a signal to the virtual machine monitor, the signal indicative of placing the virtual machine in a state in which firmware associated with the virtual machine can write to a boot device.
