I think this was fixed earlier by: commit 095f8c029319b79cce487e3b566cd826b93da3e6 Author: Keith Packard <kei...@keithp.com> Date: Fri Jan 8 22:42:51 2021 +0000
semihosting: Support SYS_HEAPINFO when env->boot_info is not set env->boot_info is only set in some ARM startup paths, so we cannot rely on it to support the SYS_HEAPINFO semihosting function. When not available, fallback to finding a RAM memory region containing the current stack and use the base of that. Signed-off-by: Keith Packard <kei...@keithp.com> Signed-off-by: Alex Bennée <alex.ben...@linaro.org> Message-Id: <20210107170717.2098982-5-kei...@keithp.com> Message-Id: <20210108224256.2321-16-alex.ben...@linaro.org> Not withstanding the other fix to the ARG usage. ** Changed in: qemu Status: New => In Progress ** Changed in: qemu Assignee: (unassigned) => Alex Bennée (ajbennee) -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1918302 Title: qemu-system-arm segfaults while servicing SYS_HEAPINFO Status in QEMU: In Progress Bug description: I compiled QEMU version 5.2.0 from source on Ubuntu 18.04, and tried to use it to run the attached bare-metal Arm hello-world image, using the command line qemu-system-arm -M microbit -semihosting -nographic -device loader,file=hello.hex The result was that qemu-system-arm itself died of a segfault. Compiling it for debugging, the location of the segfault was in target/arm/arm-semi.c, in the case handler for the semihosting call TARGET_SYS_HEAPINFO, on line 1020 which assigns to 'rambase': const struct arm_boot_info *info = env->boot_info; target_ulong rambase = info->loader_start; and the problem seems to be that 'info', aka env->boot_info, is NULL in this context. To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1918302/+subscriptions