Это вопрос до this с дополнительной информацией, так как никто не ответил на него. Я клонировал последнее репо QEMU и последовал за this учебником, чтобы создать программу Hello World для arm-softmmu. Я проследил TCG, а не регистры в базовом блоке с использованием вспомогательных функций, но я столкнулся с функцией отслеживания, и я хотел попробовать. После documentation это файл my/tmp/events после расторжения файла трассировки событий.Как использовать простой трассировщик QEMU?
exec_tb
exec_tb_exit
Часть трассировка события-файл, в котором отключить ключевое слово удалялось для включения трассировки:
# TCG related tracing (mostly disabled by default)
# cpu-exec.c
exec_tb(void *tb, uintptr_t pc) "tb:%p pc=0x%"PRIxPTR
exec_tb_nocache(void *tb, uintptr_t pc) "tb:%p pc=0x%"PRIxPTR
exec_tb_exit(void *last_tb, unsigned int flags) "tb:%p flags=%x"
Это, как настроить и запустить в Qemu исполняемый:
./configure --target-list=arm-softmmu --enable-trace-backends=simple
make
./qemu-system-arm -trace events=/tmp/events -M versatilepb -m 256M -nographic -kernel ~/FileName.bin
Из каталога arm-softmmu я запускаю простой скрипт python таким образом:
./scripts/simpletrace.py trace-events arm-softmmu/trace-*pid* | head
Я делаю что-то не так здесь? Поскольку я не получаю абсолютно никакой информации. Даже двоичный код после трассировки - это всего лишь короткая строка (тарабарщина, конечно). На самом деле я ожидал достаточно большой трассы.