logging dan debugging untuk mesin virtual qemu

12

Saya memiliki mesin qemuvirtual yang mengalami crash beberapa kali karena HDD di hypervisor tidak memiliki ruang tersisa. Ini membuat saya bertanya-tanya apakah ada kemungkinan untuk mengatur logging / debugging untuk quemumesin virtual. Saya mencoba memulai mesin virtual dengan -D /tmp/qemu-debug-logperintah:

qemu-system-i386 -D /tmp/qemu-debug-log -monitor pty -device e1000,netdev=tap0 -netdev tap,id=tap0 -m 512M -display vnc=:1 -drive file=FreeBSD10.2

..tapi ini bahkan tidak membuat /tmp/qemu-debug-logfile.

Selain itu, qemusepertinya tidak menulis ke dalam messagesatau buffer cincin kernel ( dmesg). Apa praktik terbaik untuk mengaktifkan pencatatan untuk qemumesin virtual?

Martin
sumber
Sudahkah Anda mencoba menggunakan fungsi libvirt?
Willian Paixao
Saya lebih suka bekerja qemusecara langsung dan tidak melalui alat yang digunakan libvirtyang pada gilirannya harus menggunakan libvirt qemudriver.
Martin

Jawaban:

10

qemuperintah menerima -dsaklar sederhana yang membuat file log disebut /tmp/qemu.log.

Anda dapat mengakses lebih banyak opsi logging / debugging melalui QEMU Monitor (mis qemu -monitor stdio.).

Dmitry Grigoryev
sumber
3

Opsi logging apa pun yang disediakan oleh QEMU akan terlalu rendah untuk apa yang Anda butuhkan: masalah Anda bukanlah perangkat keras virtual mengalami kesalahan, hanya saja perangkat lunak di dalam VM perlu diperhatikan.

Dalam hal ini VM tidak berbeda dengan mesin nyata, dan solusinya sama. Pertanyaan Anda menunjukkan bahwa VM menjalankan FreeBSD, jadi Anda harus memeriksa menggunakan rsysloguntuk mendorong log ke server syslog eksternal (yang bisa menjadi mesin host Anda) melalui koneksi jaringan.

(Saya tidak terlalu terbiasa dengan BSD, jadi saya tidak 100% yakin bahwa itu rsyslogadalah solusi yang tepat atau satu-satunya di sini, tetapi kata kunci tersebut harus Anda mulai.)

am
sumber
0

Jika Anda menggunakan -d <component>parameter saat memulai QEMU, itu akan memungkinkan debugging untuk komponen itu. Ini berguna jika Anda memiliki kode sumber QEMU dan ingin melihat detail debug untuk komponen tertentu.

Sebagai contoh, passing -d cpu_resetakan mengaktifkan debugging CPU_LOG_RESET yang akan "menampilkan status CPU sebelum reset CPU". Lihat qemu / util / log.c untuk daftar lengkap opsi logging.

Secara default, log ditulis ke /tmp/qemu.log, tetapi Anda dapat menentukan file log yang berbeda dengan -D <logfile>parameternya.

seacoder
sumber