VirtualBox

Version 29 (modified by Michael Thayer, 14 years ago) ( diff )

Describe pid-specific core dumps on Linux

How to create a core dump on Linux

A core dump is very helpful for helping us tracking down crashes of VirtualBox. To create a core dump, start VirtualBox from a command line (e.g. xterm):

$ ulimit -c unlimited
$ sudo su
# echo -n 1 > /proc/sys/kernel/core_uses_pid
# echo -n 1 > /proc/sys/fs/suid_dumpable
# exit
$ VirtualBox

or better start the VM directly:

$ ulimit -c unlimited
$ sudo su
# echo -n 1 > /proc/sys/kernel/core_uses_pid
# echo -n 1 > /proc/sys/fs/suid_dumpable
# exit
$ /usr/lib/virtualbox/VirtualBox -startvm VM_NAME

Ensure that no startup script (~/.bashrc, ~/.bash_profile, ~/.profile) contains an instruction like ulimit -c 0 as the limit cannot be increased once it was set to zero.

Starting with version 2.0.0, the VirtualBox processes are started suid root, that is, with permissions to do things that "normal" applications cannot. This is the reason for the

$ sudo su
$ echo -n 1 > /proc/sys/fs/suid_dumpable
$ exit

before starting the VM/GUI (note that sudo echo will not do what we want here).

When VirtualBox or one of its processes crashes, a file core.<pid> is created in the current directory. Be aware that core dumps can be very huge. Please compress the file before submitting it to a bug report. Or better don't attach the file to a report. Note that this core dump can contain a memory dump of your guest which can include sensitive information. Send it to frank _dot_ mehnert at oracle _dot_ com if the compressed file is smaller than 5MB. Contact me directly otherwise.

If several core files are created, you can check which process created them using the command

$ file core.<pid>

to be sure of the right one to send.

How to create dumps on Mac OS X

To create a core dump on Mac OS X, start VirtualBox from a command line:

$ ulimit -c unlimited
$ VirtualBox

or better start the VM directly:

$ ulimit -c unlimited
$ /Applications/VirtualBox.app/Contents/MacOS/VirtualBox -startvm VM_NAME

Ensure that no startup script (~/.bashrc, ~/.bash_profile, ~/.profile) contains an instruction like ulimit -c 0 as the limit cannot be increased once it was set to zero.

The core files can be found in the /cores folder.

How to create dumps on OpenSolaris

To get core on OpenSolaris host run the following command as root

# coreadm -g /var/cores/core.%f.%p -i core.%f.%p -e global -e process -e global-setid -e proc-setid -e log

The cores will now be placed in /var/cores/ folder with the global dumps will go into /var/crash/<hostname>

Forcing VirtualBox to terminate with a core dump

Sometimes it is required to force a VirtualBox process to terminate, for example, a VM hangs for some unknown reason. On Linux, this can be done as follows:

$ ulimit -c unlimited
$ sudo echo -n 1 > /proc/sys/fs/suid_dumpable
$ /usr/lib/virtualbox/VirtualBox -startvm VM_NAME &
$ pidof VirtualBox
7145
$ kill -4 7145

As an alternative to kill you can do

$ pidof VirtualBox
7145
$ gcore 7145

On Mac OS X:

$ ulimit -c unlimited
$ /Applications/VirtualBox.app/Contents/MacOS/VirtualBox -startvm VM_NAME &
$ ps aux|grep VirtualBox
... 7145 ... VirtualBox ...
$ kill -4 7145

On !Solaris:

# ulimit -c unlimited
# /opt/VirtualBox/amd64/bin/VirtualBox -startvm VM_NAME &
# ps -ef|grep VirtualBox
... 7145 ... VirtualBox ...
# kill -4 7145

You can find result core file according location specified in coreadm

# coreadm

Passing the signal number 4 (SIGILL) is essential! The same applies to the alternative frontends VBoxHeadless and VBoxSDL.

Minidumps on Windows

Please visit this Microsoft site for more details about minidumps
Please visit the Microsoft Performance Team blog for more details about Application crash dumps

Note: See TracWiki for help on using the wiki.

© 2023 Oracle
ContactPrivacy policyTerms of Use