2016-05-30 49 views
3

我正在從QEMU獲取簡單的跟蹤文件。 我跟着指令文檔/ tracing.txtQEMU簡單的後臺跟蹤不會打印任何信息

與此命令 「的qemu系統-x86_64的-m 2G -trace事件=/TMP /事件../qemu/test.img」

我想獲取簡單的跟蹤文件。 我有trace-pid文件,但是它沒有任何內容。

  1. 與 '簡單' 跟蹤後臺生成:

    的./configure --enable-跟蹤後端=簡單 使

  2. 創建要跟蹤的事件文件:

    回波bdrv_aio_readv>的/ tmp /事件 回波bdrv_aio_writev >>/TMP /事件

  3. 運行虛擬機,以產生一個跟蹤文件:

    QEMU -trace事件=的/ tmp /事件...#你的正常QEMU調用

  4. 漂亮的打印二進制跟蹤文件:

    。 /scripts/simpletrace.py跟蹤事件跟蹤*#用QEMU覆蓋*

我遵循這個指示。 請有人給我一些建議這種情況。

謝謝!

+0

任何解決方案...我有同樣的確切問題。 – Haswell

+0

@哈斯韋爾做你們中的任何人,搞清楚爲什麼沒有印刷品? – Mellkor

+0

@Melkor對不起,我沒有跟蹤簡單的跟蹤方法,我用ftrace代替它,它很好地滿足了我的目的和時間戳。 – Haswell

回答

0

我通過遵循相同的文檔得到同樣的問題。 https://fossies.org/linux/qemu/docs/tracing.txt 什麼都沒有,因爲 bdrv_aio_readv和bdrv_aio_writev在默認情況下未啓用,至少我所遵循的版本未啓用。您需要在源目錄下打開跟蹤事件,查找一些沒有禁用的行,例如我使用: 回聲 「LOAD_FILE」>/tmp目錄/事件 然後啓動QEMU, 做客啓動後,我運行 ./scripts/simpletrace.py跟蹤事件追蹤-PID 我

load_file 1474.156 pid=5249 name=kvmvapic.bin path=qemu-2.8.0-rc0/pc-bios/kvmvapic.bin 
load_file 22437.571 pid=5249 name=vgabios-stdvga.bin path=qemu-2.8.0-rc0/pc-bios/vgabios-stdvga.bin 
load_file 10034.465 pid=5249 name=efi-e1000.rom 

你也可以添加-monitor標準輸入輸出到QEMU命令行,它啓動後,你可以在qemu的CLI以下命令:

(QEMU)信息跟蹤事件

load_file : state 1 
vm_state_notify : state 1 
balloon_event : state 0 
cpu_out : state 0 
cpu_in : state 0 

1裝置E nabled事件。

0

修改trace-events文件中的源代碼樹

由於v2.9.0,你也必須刪除從要啓用那裏,例如該行disable

-disable exec_tb(void *tb, uintptr_t pc) "tb:%p pc=0x%"PRIxPTR 
+exec_tb(void *tb, uintptr_t pc) "tb:%p pc=0x%"PRIxPTR 

並重新編譯。

這裏是靴子Linux和產生的痕跡最小的全自動化運行的例子:https://github.com/cirosantilli/linux-kernel-module-cheat

例如,我使用的痕跡來算的Linux多少引導指令有:https://github.com/cirosantilli/linux-kernel-module-cheat/blob/c7bbc6029af7f4fab0a23a380d1607df0b2a3701/count-boot-instructions.md

我有一個輕微修補QEMU作爲子模塊,關鍵的承諾是:https://github.com/cirosantilli/qemu/commit/e583d175e4cdfb12b4812a259e45c679743b32ad