mirror of
https://github.com/cirosantilli/linux-kernel-module-cheat.git
synced 2026-01-26 11:41:35 +01:00
get_elf_entry
trace2txt fully ported
This commit is contained in:
33
trace-boot
33
trace-boot
@@ -36,11 +36,28 @@ else:
|
||||
})
|
||||
run.main(args, extra_args)
|
||||
qemu_trace2txt.main()
|
||||
## Instruction count.
|
||||
## We could put this on a separate script, but it just adds more arch boilerplate to a new script.
|
||||
## So let's just leave it here for now since it did not add a significant processing time.
|
||||
#echo "instructions $(wc -l "${common_trace_txt_file}" | cut -d' ' -f1)"
|
||||
#entry_addr=$("${common_root_dir}/runtc" readelf -h "${common_build_dir}/linux-custom/vmlinux" | grep 'Entry point address' | sed -E 's/.*: *//')
|
||||
#echo "entry_address ${entry_addr}"
|
||||
#sed "/${entry_addr}/q" "${common_trace_txt_file}" >"${common_qemu_run_dir}/trace-boot.txt"
|
||||
#echo "instructions_firmware $(wc -l "${common_qemu_run_dir}/trace-boot.txt" | cut -d' ' -f1)"
|
||||
# Instruction count.
|
||||
# We could put this on a separate script, but it just adds more arch boilerplate to a new script.
|
||||
# So let's just leave it here for now since it did not add a significant processing time.
|
||||
kernel_entry_addr = hex(common.get_elf_entry(common.vmlinux))
|
||||
nlines = 0
|
||||
nlines_firmware = 0
|
||||
with open(common.qemu_trace_txt_file, 'r') as trace_file:
|
||||
in_firmware = True
|
||||
for line in trace_file:
|
||||
line = line.rstrip()
|
||||
nlines += 1
|
||||
pc = line.split('=')[-1]
|
||||
if pc == kernel_entry_addr:
|
||||
in_firmware = False
|
||||
if in_firmware:
|
||||
nlines_firmware += 1
|
||||
print('''\
|
||||
instructions {}
|
||||
entry_address {}
|
||||
instructions_firmware {}\
|
||||
'''.format(
|
||||
nlines,
|
||||
kernel_entry_addr,
|
||||
nlines_firmware
|
||||
))
|
||||
|
||||
Reference in New Issue
Block a user