Produce a minimal ELF-64 executable for RV64IMAFD (little-endian). Layout: ELF header 1 program header section data section headers strtab symtab A single combined `PT_LOAD` segment covers all sections. This avoids the QEMU page-permission conflict that arises when .text (R X) and .bss (R W) share the same 4 KB page: with one `PT_LOAD` there is no conflicting mapping. Since all code uses P
(&self, load_base: u64)
| 213 | .filter(|e| e.file_id == file_id && e.line == line) |
| 214 | .map(|e| e.addr) |
| 215 | .min() |
| 216 | } |
| 217 | |
| 218 | /// Lowest code address on the first line at or after `line` in `file`, so |
| 219 | /// label, blank, and comment lines resolve to the code that follows them. |
| 220 | pub fn addr_for_source_at_or_after(&self, file: &str, line: u32) -> Option<u64> { |