From 9f99972b658d00d8f7072c6e111cd3af35856ca4 Mon Sep 17 00:00:00 2001 From: Godones <1925466036@qq.com> Date: Thu, 9 Feb 2023 21:46:15 +0800 Subject: [PATCH 1/2] feat: add stack backtrace support Use riscv's code generation rules for stack backtraces. 1. Compile the source code in the first pass to generate an executable file, and use the nm tool to extract symbol information 2. The second pass compiles the source code to link the symbolic information into the executable file. Points to note: 1. backtrace needs to support alloc 2. If the kernel panics before alloc initialization, it will cause an error --- os/.cargo/config | 2 +- os/Cargo.toml | 2 +- os/Makefile | 10 +- os/build.rs | 19 + os/src/lang_items.rs | 22 +- os/src/main.rs | 20 + os/src/trace/kernel_symbol.S | 3056 ++++++++++++++++++++++++++++++++++ os/src/trace/mod.rs | 75 + 8 files changed, 3188 insertions(+), 18 deletions(-) create mode 100644 os/src/trace/kernel_symbol.S create mode 100644 os/src/trace/mod.rs diff --git a/os/.cargo/config b/os/.cargo/config index 4275fcad6..93d3a7923 100644 --- a/os/.cargo/config +++ b/os/.cargo/config @@ -3,5 +3,5 @@ target = "riscv64gc-unknown-none-elf" [target.riscv64gc-unknown-none-elf] rustflags = [ - "-Clink-arg=-Tsrc/linker.ld", "-Cforce-frame-pointers=yes" + "-Clink-arg=-Tsrc/linker.ld" ] diff --git a/os/Cargo.toml b/os/Cargo.toml index fbcff883a..6bfb7a6b9 100644 --- a/os/Cargo.toml +++ b/os/Cargo.toml @@ -19,6 +19,6 @@ lose-net-stack = { git = "https://github.com/yfblock/lose-net-stack", rev = "3f4 easy-fs = { path = "../easy-fs" } embedded-graphics = "0.7.1" tinybmp = "0.3.1" - +trace_lib = {git = "https://github.com/os-module/rtrace"} [profile.release] debug = true diff --git a/os/Makefile b/os/Makefile index ac0fd2730..9dbcdb634 100644 --- a/os/Makefile +++ b/os/Makefile @@ -31,12 +31,12 @@ OBJDUMP := rust-objdump --arch-name=riscv64 OBJCOPY := rust-objcopy --binary-architecture=riscv64 # Disassembly -DISASM ?= -x +DISASM ?= -d # Run usertests or usershell TEST ?= -build: env $(KERNEL_BIN) fs-img +build: env stack_trace $(KERNEL_BIN) fs-img env: (rustup target list | grep "riscv64gc-unknown-none-elf (installed)") || rustup target add $(TARGET) @@ -53,11 +53,17 @@ fs-img: $(APPS) @cd ../easy-fs-fuse && cargo run --release -- -s ../user/src/bin/ -t ../user/target/riscv64gc-unknown-none-elf/release/ $(APPS): +stack_trace: + @# install trace_exe to generate elf symbol info + @cargo install --git https://github.com/os-module/elfinfo kernel: @echo Platform: $(BOARD) + @touch src/trace/kernel_symbol.S && rm src/trace/kernel_symbol.S @cp src/linker-$(BOARD).ld src/linker.ld @cargo build --release + @(nm -n ${KERNEL_ELF} | trace_exe > src/trace/kernel_symbol.S) + @cargo build --release @rm src/linker.ld clean: diff --git a/os/build.rs b/os/build.rs index 5529b4fea..271a84fb1 100644 --- a/os/build.rs +++ b/os/build.rs @@ -1,6 +1,25 @@ +use std::fs::File; +use std::path::Path; +use std::io::Write; static TARGET_PATH: &str = "../user/target/riscv64gc-unknown-none-elf/release/"; fn main() { println!("cargo:rerun-if-changed=../user/src/"); println!("cargo:rerun-if-changed={}", TARGET_PATH); + println!("cargo:rerun-if-changed={}", "src"); + let path = Path::new("src/trace/kernel_symbol.S"); + if !path.exists() { + let mut file = File::create(path).unwrap(); + write!(file, ".section .rodata\n").unwrap(); + write!(file, ".align 3\n").unwrap(); + write!(file, ".global symbol_num\n").unwrap(); + write!(file, ".global symbol_address\n").unwrap(); + write!(file, ".global symbol_index\n").unwrap(); + write!(file, ".global symbol_name\n").unwrap(); + write!(file, "symbol_num:\n").unwrap(); + write!(file, ".quad {}\n", 0).unwrap(); + write!(file, "symbol_address:\n").unwrap(); + write!(file, "symbol_index:\n").unwrap(); + write!(file, "symbol_name:\n").unwrap(); + } } diff --git a/os/src/lang_items.rs b/os/src/lang_items.rs index a33943a1a..75b042625 100644 --- a/os/src/lang_items.rs +++ b/os/src/lang_items.rs @@ -15,23 +15,17 @@ fn panic(info: &PanicInfo) -> ! { } else { println!("[kernel] Panicked: {}", info.message().unwrap()); } - unsafe { - backtrace(); - } + backtrace(); shutdown(255) } -unsafe fn backtrace() { - let mut fp: usize; - let stop = current_kstack_top(); - asm!("mv {}, s0", out(reg) fp); +#[no_mangle] +fn backtrace() { println!("---START BACKTRACE---"); - for i in 0..10 { - if fp == stop { - break; - } - println!("#{}:ra={:#x}", i, *((fp - 8) as *const usize)); - fp = *((fp - 16) as *const usize); - } + let info = crate::trace::init_kernel_trace(); + let func_info = unsafe { trace_lib::my_trace(info) }; + func_info.iter().for_each(|x| { + println!("{}", x); + }); println!("---END BACKTRACE---"); } diff --git a/os/src/main.rs b/os/src/main.rs index 83554ae75..8c72d1b6a 100644 --- a/os/src/main.rs +++ b/os/src/main.rs @@ -5,6 +5,7 @@ #![feature(naked_functions)] #![feature(fn_align)] +use core::arch::global_asm; //use crate::drivers::{GPU_DEVICE, KEYBOARD_DEVICE, MOUSE_DEVICE, INPUT_CONDVAR}; use crate::drivers::{GPU_DEVICE, KEYBOARD_DEVICE, MOUSE_DEVICE}; extern crate alloc; @@ -29,6 +30,7 @@ mod task; mod timer; mod trap; mod net; +mod trace; use riscv::register::*; // mod riscvreg; @@ -251,6 +253,7 @@ use crate::drivers::chardev::CharDevice; use crate::drivers::chardev::UART; #[no_mangle] pub fn rust_main() -> ! { + // global_asm!(include_str!("kernel_symbol.S")); //clear_bss(); mm::init(); @@ -272,3 +275,20 @@ pub fn rust_main() -> ! { task::run_tasks(); panic!("Unreachable in rust_main!"); } + +#[no_mangle] +fn test_tp(){ + let a = 33; + let b = 22; + let max = core::cmp::max(a,b); + // println!("max is {}",max); + test_tp_tp(max); +} + + +#[no_mangle] +fn test_tp_tp(max:i32){ + let a = 33; + let max = core::cmp::max(a,max); + println!("test tp tp {}",max); +} \ No newline at end of file diff --git a/os/src/trace/kernel_symbol.S b/os/src/trace/kernel_symbol.S new file mode 100644 index 000000000..47b246183 --- /dev/null +++ b/os/src/trace/kernel_symbol.S @@ -0,0 +1,3056 @@ +.align 3 +.section .rodata +.globl symbol_num +symbol_num: + .quad 1015 +.globl symbol_address +symbol_address: + .quad 2147483648 + .quad 2147483648 + .quad 2147483648 + .quad 2147487744 + .quad 2147487744 + .quad 2147487840 + .quad 2147487932 + .quad 2147488012 + .quad 2147491840 + .quad 2147494234 + .quad 2147495518 + .quad 2147496786 + .quad 2147497242 + .quad 2147497698 + .quad 2147498166 + .quad 2147498634 + .quad 2147499082 + .quad 2147499530 + .quad 2147500078 + .quad 2147500626 + .quad 2147501354 + .quad 2147502082 + .quad 2147502278 + .quad 2147502474 + .quad 2147502574 + .quad 2147502574 + .quad 2147502752 + .quad 2147502752 + .quad 2147502752 + .quad 2147502752 + .quad 2147502752 + .quad 2147502752 + .quad 2147502930 + .quad 2147502930 + .quad 2147502930 + .quad 2147502930 + .quad 2147503108 + .quad 2147503286 + .quad 2147503464 + .quad 2147503614 + .quad 2147503796 + .quad 2147503796 + .quad 2147503796 + .quad 2147503796 + .quad 2147503972 + .quad 2147504120 + .quad 2147504754 + .quad 2147504916 + .quad 2147505058 + .quad 2147505070 + .quad 2147505070 + .quad 2147505072 + .quad 2147505514 + .quad 2147505572 + .quad 2147505836 + .quad 2147506148 + .quad 2147506328 + .quad 2147506384 + .quad 2147506484 + .quad 2147507236 + .quad 2147507376 + .quad 2147507388 + .quad 2147507390 + .quad 2147507556 + .quad 2147507698 + .quad 2147507958 + .quad 2147508290 + .quad 2147508632 + .quad 2147508890 + .quad 2147509322 + .quad 2147509588 + .quad 2147510214 + .quad 2147510260 + .quad 2147510850 + .quad 2147510924 + .quad 2147511166 + .quad 2147511182 + .quad 2147511644 + .quad 2147511956 + .quad 2147512154 + .quad 2147512438 + .quad 2147512498 + .quad 2147512774 + .quad 2147513070 + .quad 2147513684 + .quad 2147514436 + .quad 2147514624 + .quad 2147514726 + .quad 2147514728 + .quad 2147514748 + .quad 2147515000 + .quad 2147515322 + .quad 2147515840 + .quad 2147516072 + .quad 2147516078 + .quad 2147516084 + .quad 2147516320 + .quad 2147516592 + .quad 2147516762 + .quad 2147517380 + .quad 2147517618 + .quad 2147518006 + .quad 2147518860 + .quad 2147519702 + .quad 2147520746 + .quad 2147521554 + .quad 2147521574 + .quad 2147521576 + .quad 2147521658 + .quad 2147521958 + .quad 2147522312 + .quad 2147522628 + .quad 2147523098 + .quad 2147523350 + .quad 2147523602 + .quad 2147524088 + .quad 2147524330 + .quad 2147524572 + .quad 2147525050 + .quad 2147525292 + .quad 2147525604 + .quad 2147526960 + .quad 2147527194 + .quad 2147527926 + .quad 2147527942 + .quad 2147527942 + .quad 2147527942 + .quad 2147527942 + .quad 2147527942 + .quad 2147527942 + .quad 2147528056 + .quad 2147528322 + .quad 2147528476 + .quad 2147528588 + .quad 2147529626 + .quad 2147529724 + .quad 2147529822 + .quad 2147529950 + .quad 2147530132 + .quad 2147530230 + .quad 2147530440 + .quad 2147530568 + .quad 2147530614 + .quad 2147530830 + .quad 2147531050 + .quad 2147531462 + .quad 2147531474 + .quad 2147531484 + .quad 2147531486 + .quad 2147531656 + .quad 2147531666 + .quad 2147532042 + .quad 2147532702 + .quad 2147533078 + .quad 2147533254 + .quad 2147533424 + .quad 2147533516 + .quad 2147533722 + .quad 2147533818 + .quad 2147534070 + .quad 2147534124 + .quad 2147534192 + .quad 2147534202 + .quad 2147534264 + .quad 2147534398 + .quad 2147534478 + .quad 2147534830 + .quad 2147535138 + .quad 2147535378 + .quad 2147536032 + .quad 2147536048 + .quad 2147536064 + .quad 2147536088 + .quad 2147536114 + .quad 2147536218 + .quad 2147536280 + .quad 2147536386 + .quad 2147536716 + .quad 2147536718 + .quad 2147536748 + .quad 2147536780 + .quad 2147536816 + .quad 2147536836 + .quad 2147537652 + .quad 2147537912 + .quad 2147538176 + .quad 2147538218 + .quad 2147538234 + .quad 2147538250 + .quad 2147538250 + .quad 2147538254 + .quad 2147538254 + .quad 2147538258 + .quad 2147538432 + .quad 2147538482 + .quad 2147538532 + .quad 2147538886 + .quad 2147538904 + .quad 2147542072 + .quad 2147542072 + .quad 2147542076 + .quad 2147542342 + .quad 2147542882 + .quad 2147542978 + .quad 2147543096 + .quad 2147543468 + .quad 2147543648 + .quad 2147543956 + .quad 2147544262 + .quad 2147544568 + .quad 2147544820 + .quad 2147545034 + .quad 2147545264 + .quad 2147545666 + .quad 2147545672 + .quad 2147545678 + .quad 2147546340 + .quad 2147546884 + .quad 2147546956 + .quad 2147547346 + .quad 2147547520 + .quad 2147547932 + .quad 2147548292 + .quad 2147548452 + .quad 2147548676 + .quad 2147548938 + .quad 2147549234 + .quad 2147550264 + .quad 2147550276 + .quad 2147550372 + .quad 2147550468 + .quad 2147550564 + .quad 2147550584 + .quad 2147550714 + .quad 2147550810 + .quad 2147550820 + .quad 2147550840 + .quad 2147550842 + .quad 2147550932 + .quad 2147551184 + .quad 2147551338 + .quad 2147551502 + .quad 2147551838 + .quad 2147552844 + .quad 2147553046 + .quad 2147553266 + .quad 2147553474 + .quad 2147555154 + .quad 2147555224 + .quad 2147555488 + .quad 2147555626 + .quad 2147555626 + .quad 2147555628 + .quad 2147555628 + .quad 2147555628 + .quad 2147555628 + .quad 2147555628 + .quad 2147555628 + .quad 2147555628 + .quad 2147555628 + .quad 2147555628 + .quad 2147555628 + .quad 2147555628 + .quad 2147555628 + .quad 2147555628 + .quad 2147555888 + .quad 2147556148 + .quad 2147556148 + .quad 2147556148 + .quad 2147556148 + .quad 2147556148 + .quad 2147556148 + .quad 2147556148 + .quad 2147556148 + .quad 2147556148 + .quad 2147556408 + .quad 2147557028 + .quad 2147557658 + .quad 2147558278 + .quad 2147558966 + .quad 2147559346 + .quad 2147559900 + .quad 2147560506 + .quad 2147560888 + .quad 2147561604 + .quad 2147562320 + .quad 2147562722 + .quad 2147562722 + .quad 2147562722 + .quad 2147562722 + .quad 2147562722 + .quad 2147562722 + .quad 2147562722 + .quad 2147562722 + .quad 2147562722 + .quad 2147562722 + .quad 2147562722 + .quad 2147562722 + .quad 2147562722 + .quad 2147562722 + .quad 2147562722 + .quad 2147562722 + .quad 2147562722 + .quad 2147562722 + .quad 2147562722 + .quad 2147562722 + .quad 2147562722 + .quad 2147562722 + .quad 2147562722 + .quad 2147562942 + .quad 2147562978 + .quad 2147563266 + .quad 2147563422 + .quad 2147563802 + .quad 2147563910 + .quad 2147564206 + .quad 2147564206 + .quad 2147564448 + .quad 2147564816 + .quad 2147565106 + .quad 2147565478 + .quad 2147565808 + .quad 2147566056 + .quad 2147566412 + .quad 2147566658 + .quad 2147567034 + .quad 2147567242 + .quad 2147567546 + .quad 2147567846 + .quad 2147568122 + .quad 2147568422 + .quad 2147568726 + .quad 2147569106 + .quad 2147569440 + .quad 2147569452 + .quad 2147569452 + .quad 2147569452 + .quad 2147569452 + .quad 2147569452 + .quad 2147569452 + .quad 2147569454 + .quad 2147569464 + .quad 2147569532 + .quad 2147569590 + .quad 2147569648 + .quad 2147569706 + .quad 2147569764 + .quad 2147570316 + .quad 2147570868 + .quad 2147570878 + .quad 2147571458 + .quad 2147571736 + .quad 2147571946 + .quad 2147572128 + .quad 2147572498 + .quad 2147573146 + .quad 2147574732 + .quad 2147574974 + .quad 2147575172 + .quad 2147575426 + .quad 2147575668 + .quad 2147575888 + .quad 2147576338 + .quad 2147576554 + .quad 2147576850 + .quad 2147577108 + .quad 2147577110 + .quad 2147577444 + .quad 2147577828 + .quad 2147578130 + .quad 2147578218 + .quad 2147579518 + .quad 2147581114 + .quad 2147582620 + .quad 2147583174 + .quad 2147584128 + .quad 2147584348 + .quad 2147584584 + .quad 2147584808 + .quad 2147585520 + .quad 2147585828 + .quad 2147585838 + .quad 2147585846 + .quad 2147585854 + .quad 2147585862 + .quad 2147585870 + .quad 2147585878 + .quad 2147585896 + .quad 2147585916 + .quad 2147586262 + .quad 2147586486 + .quad 2147586494 + .quad 2147586504 + .quad 2147586514 + .quad 2147586532 + .quad 2147586550 + .quad 2147586568 + .quad 2147586586 + .quad 2147586602 + .quad 2147586860 + .quad 2147586904 + .quad 2147587824 + .quad 2147588144 + .quad 2147588172 + .quad 2147588174 + .quad 2147588176 + .quad 2147588236 + .quad 2147588812 + .quad 2147589214 + .quad 2147589276 + .quad 2147589290 + .quad 2147590128 + .quad 2147590150 + .quad 2147590490 + .quad 2147590994 + .quad 2147591424 + .quad 2147591424 + .quad 2147591426 + .quad 2147591498 + .quad 2147591498 + .quad 2147591570 + .quad 2147591714 + .quad 2147591736 + .quad 2147592232 + .quad 2147592348 + .quad 2147593580 + .quad 2147593654 + .quad 2147593728 + .quad 2147593882 + .quad 2147593888 + .quad 2147593902 + .quad 2147593910 + .quad 2147594006 + .quad 2147594008 + .quad 2147594144 + .quad 2147594146 + .quad 2147594148 + .quad 2147594368 + .quad 2147594604 + .quad 2147594882 + .quad 2147595726 + .quad 2147595950 + .quad 2147596258 + .quad 2147596608 + .quad 2147596834 + .quad 2147596836 + .quad 2147597280 + .quad 2147598116 + .quad 2147598772 + .quad 2147599212 + .quad 2147599580 + .quad 2147599956 + .quad 2147599956 + .quad 2147599958 + .quad 2147600016 + .quad 2147600112 + .quad 2147600212 + .quad 2147600390 + .quad 2147600568 + .quad 2147600822 + .quad 2147601220 + .quad 2147601462 + .quad 2147602204 + .quad 2147602440 + .quad 2147602752 + .quad 2147603678 + .quad 2147604236 + .quad 2147604492 + .quad 2147604748 + .quad 2147605362 + .quad 2147605600 + .quad 2147605894 + .quad 2147606048 + .quad 2147606186 + .quad 2147606402 + .quad 2147606748 + .quad 2147607034 + .quad 2147607340 + .quad 2147607812 + .quad 2147608048 + .quad 2147608256 + .quad 2147608482 + .quad 2147608866 + .quad 2147608980 + .quad 2147609132 + .quad 2147609150 + .quad 2147610082 + .quad 2147610252 + .quad 2147610382 + .quad 2147610392 + .quad 2147610394 + .quad 2147610498 + .quad 2147610522 + .quad 2147610536 + .quad 2147611604 + .quad 2147612150 + .quad 2147612296 + .quad 2147612302 + .quad 2147612322 + .quad 2147612338 + .quad 2147612348 + .quad 2147612358 + .quad 2147612362 + .quad 2147612366 + .quad 2147612378 + .quad 2147612384 + .quad 2147612480 + .quad 2147612576 + .quad 2147612672 + .quad 2147612768 + .quad 2147614738 + .quad 2147614966 + .quad 2147615070 + .quad 2147615080 + .quad 2147615210 + .quad 2147615212 + .quad 2147615218 + .quad 2147615222 + .quad 2147615426 + .quad 2147615518 + .quad 2147617366 + .quad 2147617410 + .quad 2147617454 + .quad 2147617498 + .quad 2147617542 + .quad 2147617544 + .quad 2147617588 + .quad 2147617632 + .quad 2147617634 + .quad 2147617638 + .quad 2147617640 + .quad 2147617642 + .quad 2147617840 + .quad 2147617850 + .quad 2147617860 + .quad 2147617862 + .quad 2147617888 + .quad 2147617914 + .quad 2147617922 + .quad 2147617996 + .quad 2147618198 + .quad 2147618526 + .quad 2147618540 + .quad 2147618542 + .quad 2147618564 + .quad 2147618622 + .quad 2147618706 + .quad 2147618854 + .quad 2147619004 + .quad 2147619104 + .quad 2147619156 + .quad 2147619170 + .quad 2147619184 + .quad 2147619198 + .quad 2147619268 + .quad 2147619512 + .quad 2147619778 + .quad 2147619898 + .quad 2147619964 + .quad 2147619978 + .quad 2147619992 + .quad 2147619996 + .quad 2147620010 + .quad 2147620024 + .quad 2147620026 + .quad 2147620050 + .quad 2147620150 + .quad 2147620162 + .quad 2147620180 + .quad 2147620194 + .quad 2147620198 + .quad 2147620202 + .quad 2147620246 + .quad 2147620268 + .quad 2147620318 + .quad 2147620382 + .quad 2147620428 + .quad 2147620496 + .quad 2147620732 + .quad 2147620808 + .quad 2147621320 + .quad 2147621700 + .quad 2147621786 + .quad 2147622078 + .quad 2147622340 + .quad 2147622340 + .quad 2147622366 + .quad 2147622396 + .quad 2147622582 + .quad 2147622638 + .quad 2147622648 + .quad 2147622836 + .quad 2147622894 + .quad 2147622944 + .quad 2147623356 + .quad 2147623992 + .quad 2147624072 + .quad 2147624664 + .quad 2147624664 + .quad 2147624672 + .quad 2147624672 + .quad 2147624722 + .quad 2147624732 + .quad 2147624742 + .quad 2147624788 + .quad 2147625048 + .quad 2147625342 + .quad 2147625534 + .quad 2147625694 + .quad 2147625746 + .quad 2147626620 + .quad 2147626636 + .quad 2147627102 + .quad 2147627116 + .quad 2147627186 + .quad 2147627200 + .quad 2147627270 + .quad 2147627284 + .quad 2147627354 + .quad 2147627400 + .quad 2147627466 + .quad 2147627998 + .quad 2147628404 + .quad 2147628428 + .quad 2147629168 + .quad 2147629422 + .quad 2147629704 + .quad 2147629728 + .quad 2147629728 + .quad 2147629858 + .quad 2147629858 + .quad 2147629988 + .quad 2147629988 + .quad 2147630120 + .quad 2147630120 + .quad 2147630252 + .quad 2147630252 + .quad 2147630362 + .quad 2147630362 + .quad 2147630488 + .quad 2147630488 + .quad 2147630614 + .quad 2147630614 + .quad 2147630614 + .quad 2147630614 + .quad 2147630740 + .quad 2147630740 + .quad 2147630740 + .quad 2147630740 + .quad 2147630866 + .quad 2147631090 + .quad 2147631306 + .quad 2147631520 + .quad 2147631878 + .quad 2147631894 + .quad 2147631910 + .quad 2147631942 + .quad 2147631958 + .quad 2147631958 + .quad 2147631990 + .quad 2147631990 + .quad 2147632004 + .quad 2147632022 + .quad 2147632032 + .quad 2147632228 + .quad 2147632238 + .quad 2147632404 + .quad 2147632412 + .quad 2147632428 + .quad 2147632604 + .quad 2147632922 + .quad 2147633098 + .quad 2147633106 + .quad 2147633114 + .quad 2147633122 + .quad 2147633130 + .quad 2147633304 + .quad 2147633692 + .quad 2147633794 + .quad 2147635200 + .quad 2147635200 + .quad 2147635200 + .quad 2147635328 + .quad 2147635419 + .quad 2147635472 + .quad 2147635496 + .quad 2147635648 + .quad 2147635688 + .quad 2147636528 + .quad 2147636571 + .quad 2147636672 + .quad 2147636720 + .quad 2147636808 + .quad 2147636824 + .quad 2147636824 + .quad 2147636904 + .quad 2147637160 + .quad 2147637208 + .quad 2147637256 + .quad 2147637288 + .quad 2147637304 + .quad 2147649880 + .quad 2147649915 + .quad 2147649936 + .quad 2147649960 + .quad 2147649963 + .quad 2147649992 + .quad 2147650024 + .quad 2147650048 + .quad 2147650096 + .quad 2147650168 + .quad 2147650192 + .quad 2147650600 + .quad 2147650600 + .quad 2147650624 + .quad 2147650640 + .quad 2147650640 + .quad 2147650736 + .quad 2147650760 + .quad 2147650848 + .quad 2147650992 + .quad 2147651016 + .quad 2147651040 + .quad 2147651056 + .quad 2147651080 + .quad 2147651104 + .quad 2147651152 + .quad 2147651176 + .quad 2147651248 + .quad 2147651264 + .quad 2147651368 + .quad 2147651416 + .quad 2147651432 + .quad 2147651464 + .quad 2147651528 + .quad 2147651544 + .quad 2147651560 + .quad 2147651688 + .quad 2147651698 + .quad 2147651728 + .quad 2147651760 + .quad 2147651816 + .quad 2147651848 + .quad 2147652044 + .quad 2147652520 + .quad 2147652520 + .quad 2147652581 + .quad 2147652600 + .quad 2147652624 + .quad 2147652663 + .quad 2147652688 + .quad 2147652712 + .quad 2147652755 + .quad 2147652776 + .quad 2147653040 + .quad 2147653064 + .quad 2147653112 + .quad 2147653184 + .quad 2147653328 + .quad 2147653472 + .quad 2147653472 + .quad 2147653560 + .quad 2147653584 + .quad 2147653608 + .quad 2147653632 + .quad 2147653968 + .quad 2147653984 + .quad 2147654003 + .quad 2147654088 + .quad 2147654144 + .quad 2147654163 + .quad 2147654248 + .quad 2147654304 + .quad 2147654328 + .quad 2147654344 + .quad 2147654365 + .quad 2147654456 + .quad 2147654512 + .quad 2147654555 + .quad 2147654680 + .quad 2147654704 + .quad 2147654752 + .quad 2147654784 + .quad 2147654808 + .quad 2147654904 + .quad 2147654928 + .quad 2147654952 + .quad 2147654976 + .quad 2147655000 + .quad 2147655024 + .quad 2147655030 + .quad 2147655037 + .quad 2147655040 + .quad 2147655088 + .quad 2147655408 + .quad 2147655408 + .quad 2147656520 + .quad 2147657320 + .quad 2147657336 + .quad 2147657360 + .quad 2147658088 + .quad 2147658117 + .quad 2147658135 + .quad 2147658175 + .quad 2147658205 + .quad 2147658224 + .quad 2147658512 + .quad 2147658512 + .quad 2147658744 + .quad 2147658944 + .quad 2147658968 + .quad 2147659016 + .quad 2147659152 + .quad 2147659184 + .quad 2147659216 + .quad 2147659240 + .quad 2147659312 + .quad 2147659336 + .quad 2147659360 + .quad 2147659408 + .quad 2147659424 + .quad 2147659456 + .quad 2147659480 + .quad 2147659504 + .quad 2147659512 + .quad 2147659512 + .quad 2147659512 + .quad 2147659512 + .quad 2147659600 + .quad 2147659624 + .quad 2147659648 + .quad 2147659683 + .quad 2147659792 + .quad 2147659816 + .quad 2147659856 + .quad 2147659888 + .quad 2147659984 + .quad 2147660024 + .quad 2147660104 + .quad 2147660416 + .quad 2147660440 + .quad 2147660456 + .quad 2147660480 + .quad 2147660784 + .quad 2147660816 + .quad 2147660864 + .quad 2147660896 + .quad 2147660928 + .quad 2147660952 + .quad 2147661000 + .quad 2147661024 + .quad 2147661048 + .quad 2147661072 + .quad 2147661096 + .quad 2147661120 + .quad 2147661144 + .quad 2147661168 + .quad 2147661184 + .quad 2147661208 + .quad 2147661232 + .quad 2147661256 + .quad 2147661273 + .quad 2147661368 + .quad 2147661392 + .quad 2147661432 + .quad 2147661456 + .quad 2147661480 + .quad 2147661512 + .quad 2147661584 + .quad 2147661608 + .quad 2147661640 + .quad 2147661712 + .quad 2147661736 + .quad 2147661768 + .quad 2147661840 + .quad 2147661864 + .quad 2147661896 + .quad 2147661960 + .quad 2147662003 + .quad 2147662024 + .quad 2147662080 + .quad 2147662112 + .quad 2147662144 + .quad 2147662176 + .quad 2147662256 + .quad 2147662312 + .quad 2147662464 + .quad 2147662512 + .quad 2147662536 + .quad 2147662579 + .quad 2147662608 + .quad 2147662632 + .quad 2147662656 + .quad 2147662680 + .quad 2147662856 + .quad 2147662880 + .quad 2147662904 + .quad 2147662928 + .quad 2147662952 + .quad 2147662976 + .quad 2147663024 + .quad 2147663072 + .quad 2147663096 + .quad 2147663120 + .quad 2147663168 + .quad 2147663192 + .quad 2147663216 + .quad 2147663240 + .quad 2147663960 + .quad 2147664006 + .quad 2147664105 + .quad 2147664136 + .quad 2147664160 + .quad 2147664184 + .quad 2147664336 + .quad 2147664377 + .quad 2147664480 + .quad 2147664504 + .quad 2147664528 + .quad 2147664568 + .quad 2147664604 + .quad 2147664696 + .quad 2147664752 + .quad 2147664776 + .quad 2147664840 + .quad 2147666892 + .quad 2147666929 + .quad 2147666992 + .quad 2147667016 + .quad 2147667040 + .quad 2147667432 + .quad 2147667584 + .quad 2147667616 + .quad 2147667680 + .quad 2147667752 + .quad 2147667776 + .quad 2147667848 + .quad 2147667872 + .quad 2147667920 + .quad 2147667944 + .quad 2147668016 + .quad 2147668034 + .quad 2147668096 + .quad 2147668120 + .quad 2147668184 + .quad 2147668208 + .quad 2147668232 + .quad 2147668280 + .quad 2147668424 + .quad 2147668496 + .quad 2147668520 + .quad 2147668544 + .quad 2147668568 + .quad 2147668605 + .quad 2147668672 + .quad 2147668696 + .quad 2147668720 + .quad 2147668808 + .quad 2147668832 + .quad 2147668849 + .quad 2147668944 + .quad 2147668968 + .quad 2147669008 + .quad 2147669032 + .quad 2147669112 + .quad 2147669136 + .quad 2147669197 + .quad 2147669240 + .quad 2147669264 + .quad 2147669491 + .quad 2147669592 + .quad 2147669688 + .quad 2147669723 + .quad 2147669832 + .quad 2147669856 + .quad 2147677904 + .quad 2147678032 + .quad 2147680256 + .quad 2147680256 + .quad 2147680584 + .quad 2147680592 + .quad 2147684352 + .quad 2147684352 + .quad 2147684352 + .quad 2147749888 + .quad 2147749888 + .quad 2147749888 + .quad 2147749912 + .quad 2147749968 + .quad 2147750024 + .quad 2147750040 + .quad 2147750104 + .quad 2147750120 + .quad 2147750144 + .quad 2147750160 + .quad 2164527376 + .quad 2164527400 + .quad 2164527424 + .quad 2164527720 + .quad 2164527736 + .quad 2164527776 + .quad 2164527808 + .quad 2164527864 + .quad 2164527912 + .quad 2164527936 + .quad 2164527952 + .quad 2164528000 + .quad 2164528032 + .quad 2164528080 + .quad 2164528224 + .quad 2164528272 + .quad 2164528336 + .quad 2164528344 + .quad 2164531200 + .quad 2164531200 +.globl symbol_index +symbol_index: + .quad 0 + .quad 8 + .quad 15 + .quad 21 + .quad 32 + .quad 44 + .quad 54 + .quad 67 + .quad 79 + .quad 321 + .quad 563 + .quad 805 + .quad 877 + .quad 949 + .quad 1022 + .quad 1095 + .quad 1173 + .quad 1251 + .quad 1333 + .quad 1415 + .quad 1695 + .quad 1975 + .quad 2269 + .quad 2563 + .quad 2591 + .quad 2637 + .quad 2683 + .quad 2729 + .quad 2775 + .quad 2821 + .quad 2867 + .quad 2913 + .quad 2959 + .quad 3005 + .quad 3051 + .quad 3097 + .quad 3143 + .quad 3189 + .quad 3235 + .quad 3281 + .quad 3327 + .quad 3387 + .quad 3447 + .quad 3507 + .quad 3567 + .quad 3627 + .quad 3666 + .quad 3706 + .quad 3746 + .quad 3777 + .quad 3820 + .quad 3871 + .quad 3912 + .quad 3952 + .quad 3992 + .quad 4044 + .quad 4097 + .quad 4136 + .quad 4155 + .quad 4195 + .quad 4270 + .quad 4355 + .quad 4438 + .quad 4473 + .quad 4517 + .quad 4574 + .quad 4601 + .quad 4660 + .quad 4691 + .quad 4733 + .quad 4772 + .quad 4831 + .quad 4846 + .quad 4859 + .quad 4871 + .quad 4888 + .quad 4953 + .quad 4994 + .quad 5035 + .quad 5081 + .quad 5162 + .quad 5193 + .quad 5226 + .quad 5257 + .quad 5288 + .quad 5322 + .quad 5353 + .quad 5383 + .quad 5414 + .quad 5465 + .quad 5493 + .quad 5526 + .quad 5551 + .quad 5576 + .quad 5627 + .quad 5678 + .quad 5725 + .quad 5773 + .quad 5810 + .quad 5852 + .quad 5891 + .quad 5949 + .quad 5985 + .quad 6027 + .quad 6067 + .quad 6116 + .quad 6148 + .quad 6201 + .quad 6258 + .quad 6271 + .quad 6305 + .quad 6334 + .quad 6370 + .quad 6404 + .quad 6440 + .quad 6480 + .quad 6516 + .quad 6554 + .quad 6592 + .quad 6630 + .quad 6666 + .quad 6705 + .quad 6737 + .quad 6770 + .quad 6833 + .quad 6864 + .quad 6895 + .quad 6926 + .quad 6957 + .quad 6988 + .quad 7019 + .quad 7050 + .quad 7081 + .quad 7112 + .quad 7143 + .quad 7174 + .quad 7205 + .quad 7236 + .quad 7267 + .quad 7298 + .quad 7329 + .quad 7360 + .quad 7391 + .quad 7437 + .quad 7484 + .quad 7523 + .quad 7554 + .quad 7584 + .quad 7632 + .quad 7685 + .quad 7719 + .quad 7785 + .quad 7851 + .quad 7917 + .quad 7991 + .quad 8065 + .quad 8126 + .quad 8170 + .quad 8256 + .quad 8344 + .quad 8432 + .quad 8488 + .quad 8532 + .quad 8541 + .quad 8602 + .quad 8665 + .quad 8730 + .quad 8797 + .quad 8831 + .quad 8862 + .quad 8934 + .quad 9003 + .quad 9014 + .quad 9027 + .quad 9040 + .quad 9058 + .quad 9067 + .quad 9153 + .quad 9183 + .quad 9228 + .quad 9277 + .quad 9336 + .quad 9387 + .quad 9407 + .quad 9430 + .quad 9453 + .quad 9462 + .quad 9520 + .quad 9578 + .quad 9627 + .quad 9677 + .quad 9726 + .quad 9776 + .quad 9821 + .quad 9867 + .quad 9913 + .quad 9960 + .quad 9978 + .quad 9999 + .quad 10045 + .quad 10091 + .quad 10133 + .quad 10176 + .quad 10187 + .quad 10202 + .quad 10212 + .quad 10276 + .quad 10327 + .quad 10378 + .quad 10429 + .quad 10480 + .quad 10558 + .quad 10636 + .quad 10660 + .quad 10707 + .quad 10754 + .quad 10797 + .quad 10841 + .quad 10881 + .quad 10916 + .quad 10953 + .quad 10996 + .quad 11031 + .quad 11059 + .quad 11090 + .quad 11133 + .quad 11176 + .quad 11219 + .quad 11250 + .quad 11280 + .quad 11310 + .quad 11340 + .quad 11370 + .quad 11400 + .quad 11430 + .quad 11462 + .quad 11494 + .quad 11542 + .quad 11630 + .quad 11718 + .quad 11796 + .quad 11873 + .quad 11891 + .quad 11901 + .quad 11950 + .quad 11989 + .quad 12018 + .quad 12054 + .quad 12077 + .quad 12112 + .quad 12141 + .quad 12189 + .quad 12242 + .quad 12292 + .quad 12342 + .quad 12392 + .quad 12442 + .quad 12492 + .quad 12542 + .quad 12592 + .quad 12642 + .quad 12692 + .quad 12742 + .quad 12792 + .quad 12842 + .quad 12892 + .quad 12942 + .quad 12992 + .quad 13042 + .quad 13092 + .quad 13142 + .quad 13192 + .quad 13242 + .quad 13292 + .quad 13342 + .quad 13392 + .quad 13443 + .quad 13494 + .quad 13545 + .quad 13596 + .quad 13647 + .quad 13698 + .quad 13749 + .quad 13800 + .quad 13851 + .quad 13902 + .quad 13953 + .quad 14016 + .quad 14079 + .quad 14142 + .quad 14205 + .quad 14268 + .quad 14331 + .quad 14394 + .quad 14457 + .quad 14520 + .quad 14583 + .quad 14646 + .quad 14709 + .quad 14772 + .quad 14835 + .quad 14898 + .quad 14961 + .quad 15024 + .quad 15087 + .quad 15150 + .quad 15213 + .quad 15276 + .quad 15339 + .quad 15402 + .quad 15475 + .quad 15536 + .quad 15597 + .quad 15662 + .quad 15732 + .quad 15763 + .quad 15794 + .quad 15825 + .quad 15856 + .quad 15887 + .quad 15918 + .quad 15949 + .quad 15980 + .quad 16011 + .quad 16042 + .quad 16073 + .quad 16104 + .quad 16135 + .quad 16166 + .quad 16197 + .quad 16228 + .quad 16259 + .quad 16290 + .quad 16321 + .quad 16352 + .quad 16383 + .quad 16414 + .quad 16447 + .quad 16495 + .quad 16530 + .quad 16585 + .quad 16629 + .quad 16660 + .quad 16691 + .quad 16722 + .quad 16753 + .quad 16784 + .quad 16877 + .quad 16971 + .quad 17064 + .quad 17113 + .quad 17190 + .quad 17270 + .quad 17305 + .quad 17342 + .quad 17372 + .quad 17403 + .quad 17440 + .quad 17480 + .quad 17517 + .quad 17562 + .quad 17590 + .quad 17618 + .quad 17649 + .quad 17676 + .quad 17702 + .quad 17749 + .quad 17830 + .quad 17911 + .quad 17992 + .quad 18046 + .quad 18090 + .quad 18135 + .quad 18180 + .quad 18228 + .quad 18281 + .quad 18335 + .quad 18390 + .quad 18449 + .quad 18488 + .quad 18529 + .quad 18563 + .quad 18576 + .quad 18591 + .quad 18606 + .quad 18626 + .quad 18653 + .quad 18694 + .quad 18732 + .quad 18772 + .quad 18815 + .quad 18852 + .quad 18887 + .quad 18921 + .quad 18965 + .quad 19008 + .quad 19049 + .quad 19096 + .quad 19136 + .quad 19159 + .quad 19193 + .quad 19223 + .quad 19240 + .quad 19272 + .quad 19309 + .quad 19347 + .quad 19392 + .quad 19444 + .quad 19496 + .quad 19550 + .quad 19581 + .quad 19617 + .quad 19684 + .quad 19719 + .quad 19755 + .quad 19793 + .quad 19864 + .quad 19945 + .quad 20025 + .quad 20107 + .quad 20199 + .quad 20227 + .quad 20254 + .quad 20285 + .quad 20327 + .quad 20373 + .quad 20416 + .quad 20459 + .quad 20496 + .quad 20532 + .quad 20570 + .quad 20607 + .quad 20637 + .quad 20668 + .quad 20715 + .quad 20742 + .quad 20792 + .quad 20827 + .quad 20853 + .quad 20888 + .quad 20916 + .quad 20940 + .quad 20969 + .quad 20999 + .quad 21026 + .quad 21056 + .quad 21097 + .quad 21139 + .quad 21178 + .quad 21214 + .quad 21251 + .quad 21283 + .quad 21314 + .quad 21347 + .quad 21378 + .quad 21408 + .quad 21436 + .quad 21482 + .quad 21528 + .quad 21567 + .quad 21606 + .quad 21645 + .quad 21686 + .quad 21727 + .quad 21768 + .quad 21809 + .quad 21850 + .quad 21891 + .quad 21932 + .quad 21970 + .quad 22013 + .quad 22044 + .quad 22079 + .quad 22120 + .quad 22163 + .quad 22262 + .quad 22361 + .quad 22412 + .quad 22468 + .quad 22546 + .quad 22577 + .quad 22610 + .quad 22692 + .quad 22723 + .quad 22754 + .quad 22806 + .quad 22864 + .quad 22894 + .quad 22924 + .quad 22954 + .quad 22985 + .quad 23040 + .quad 23083 + .quad 23127 + .quad 23184 + .quad 23240 + .quad 23304 + .quad 23354 + .quad 23413 + .quad 23473 + .quad 23521 + .quad 23570 + .quad 23623 + .quad 23668 + .quad 23720 + .quad 23771 + .quad 23801 + .quad 23831 + .quad 23861 + .quad 23891 + .quad 23948 + .quad 24003 + .quad 24047 + .quad 24069 + .quad 24118 + .quad 24149 + .quad 24186 + .quad 24252 + .quad 24310 + .quad 24369 + .quad 24428 + .quad 24458 + .quad 24488 + .quad 24518 + .quad 24548 + .quad 24578 + .quad 24627 + .quad 24676 + .quad 24708 + .quad 24746 + .quad 24780 + .quad 24816 + .quad 24839 + .quad 24869 + .quad 24899 + .quad 24961 + .quad 25002 + .quad 25043 + .quad 25081 + .quad 25138 + .quad 25200 + .quad 25262 + .quad 25301 + .quad 25331 + .quad 25372 + .quad 25412 + .quad 25452 + .quad 25512 + .quad 25558 + .quad 25586 + .quad 25620 + .quad 25653 + .quad 25696 + .quad 25705 + .quad 25749 + .quad 25782 + .quad 25810 + .quad 25863 + .quad 25907 + .quad 25946 + .quad 25985 + .quad 26024 + .quad 26063 + .quad 26102 + .quad 26195 + .quad 26231 + .quad 26287 + .quad 26318 + .quad 26372 + .quad 26400 + .quad 26444 + .quad 26489 + .quad 26512 + .quad 26539 + .quad 26570 + .quad 26606 + .quad 26633 + .quad 26664 + .quad 26701 + .quad 26729 + .quad 26794 + .quad 26834 + .quad 26875 + .quad 26914 + .quad 26953 + .quad 26990 + .quad 27028 + .quad 27067 + .quad 27096 + .quad 27124 + .quad 27164 + .quad 27205 + .quad 27245 + .quad 27295 + .quad 27312 + .quad 27347 + .quad 27396 + .quad 27422 + .quad 27454 + .quad 27508 + .quad 27540 + .quad 27594 + .quad 27632 + .quad 27670 + .quad 27705 + .quad 27754 + .quad 27803 + .quad 27852 + .quad 27900 + .quad 27933 + .quad 27964 + .quad 27997 + .quad 28029 + .quad 28076 + .quad 28126 + .quad 28171 + .quad 28219 + .quad 28262 + .quad 28308 + .quad 28358 + .quad 28418 + .quad 28449 + .quad 28482 + .quad 28510 + .quad 28541 + .quad 28573 + .quad 28612 + .quad 28672 + .quad 28727 + .quad 28782 + .quad 28837 + .quad 28892 + .quad 28948 + .quad 29004 + .quad 29060 + .quad 29116 + .quad 29170 + .quad 29224 + .quad 29280 + .quad 29336 + .quad 29392 + .quad 29448 + .quad 29504 + .quad 29560 + .quad 29618 + .quad 29676 + .quad 29732 + .quad 29788 + .quad 29846 + .quad 29904 + .quad 29956 + .quad 30009 + .quad 30064 + .quad 30093 + .quad 30152 + .quad 30212 + .quad 30272 + .quad 30332 + .quad 30392 + .quad 30454 + .quad 30514 + .quad 30576 + .quad 30620 + .quad 30650 + .quad 30680 + .quad 30710 + .quad 30740 + .quad 30770 + .quad 30802 + .quad 30857 + .quad 30910 + .quad 30965 + .quad 30973 + .quad 30980 + .quad 30987 + .quad 30994 + .quad 31025 + .quad 31057 + .quad 31088 + .quad 31119 + .quad 31185 + .quad 31191 + .quad 31199 + .quad 31265 + .quad 31331 + .quad 31397 + .quad 31463 + .quad 31530 + .quad 31597 + .quad 31664 + .quad 31731 + .quad 31798 + .quad 31864 + .quad 31929 + .quad 31994 + .quad 32061 + .quad 32127 + .quad 32193 + .quad 32260 + .quad 32327 + .quad 32394 + .quad 32461 + .quad 32528 + .quad 32595 + .quad 32662 + .quad 32729 + .quad 32796 + .quad 32863 + .quad 32930 + .quad 32997 + .quad 33064 + .quad 33131 + .quad 33198 + .quad 33264 + .quad 33293 + .quad 33359 + .quad 33425 + .quad 33491 + .quad 33557 + .quad 33623 + .quad 33689 + .quad 33756 + .quad 33823 + .quad 33890 + .quad 33957 + .quad 34024 + .quad 34091 + .quad 34158 + .quad 34225 + .quad 34291 + .quad 34357 + .quad 34424 + .quad 34491 + .quad 34558 + .quad 34624 + .quad 34690 + .quad 34756 + .quad 34822 + .quad 34889 + .quad 34956 + .quad 35023 + .quad 35090 + .quad 35157 + .quad 35224 + .quad 35290 + .quad 35355 + .quad 35388 + .quad 35453 + .quad 35518 + .quad 35583 + .quad 35648 + .quad 35713 + .quad 35779 + .quad 35845 + .quad 35911 + .quad 35977 + .quad 36043 + .quad 36109 + .quad 36175 + .quad 36241 + .quad 36306 + .quad 36333 + .quad 36398 + .quad 36463 + .quad 36528 + .quad 36593 + .quad 36659 + .quad 36725 + .quad 36791 + .quad 36857 + .quad 36923 + .quad 36989 + .quad 37055 + .quad 37121 + .quad 37187 + .quad 37253 + .quad 37319 + .quad 37385 + .quad 37451 + .quad 37517 + .quad 37583 + .quad 37649 + .quad 37715 + .quad 37781 + .quad 37847 + .quad 37913 + .quad 37979 + .quad 38045 + .quad 38111 + .quad 38177 + .quad 38243 + .quad 38309 + .quad 38375 + .quad 38441 + .quad 38507 + .quad 38540 + .quad 38576 + .quad 38642 + .quad 38709 + .quad 38776 + .quad 38843 + .quad 38910 + .quad 38977 + .quad 39044 + .quad 39111 + .quad 39178 + .quad 39245 + .quad 39310 + .quad 39338 + .quad 39404 + .quad 39470 + .quad 39536 + .quad 39602 + .quad 39668 + .quad 39734 + .quad 39800 + .quad 39866 + .quad 39932 + .quad 39998 + .quad 40064 + .quad 40130 + .quad 40196 + .quad 40262 + .quad 40328 + .quad 40339 + .quad 40404 + .quad 40419 + .quad 40432 + .quad 40444 + .quad 40509 + .quad 40574 + .quad 40639 + .quad 40704 + .quad 40770 + .quad 40836 + .quad 40902 + .quad 40968 + .quad 41034 + .quad 41100 + .quad 41166 + .quad 41232 + .quad 41298 + .quad 41364 + .quad 41430 + .quad 41496 + .quad 41562 + .quad 41628 + .quad 41694 + .quad 41760 + .quad 41826 + .quad 41892 + .quad 41958 + .quad 42024 + .quad 42091 + .quad 42158 + .quad 42225 + .quad 42292 + .quad 42359 + .quad 42426 + .quad 42493 + .quad 42560 + .quad 42625 + .quad 42690 + .quad 42755 + .quad 42820 + .quad 42885 + .quad 42950 + .quad 43015 + .quad 43080 + .quad 43145 + .quad 43210 + .quad 43276 + .quad 43342 + .quad 43408 + .quad 43474 + .quad 43540 + .quad 43606 + .quad 43672 + .quad 43738 + .quad 43804 + .quad 43870 + .quad 43935 + .quad 44000 + .quad 44065 + .quad 44130 + .quad 44196 + .quad 44262 + .quad 44328 + .quad 44394 + .quad 44460 + .quad 44526 + .quad 44592 + .quad 44658 + .quad 44724 + .quad 44790 + .quad 44856 + .quad 44922 + .quad 44988 + .quad 45054 + .quad 45120 + .quad 45186 + .quad 45252 + .quad 45318 + .quad 45384 + .quad 45450 + .quad 45516 + .quad 45582 + .quad 45648 + .quad 45713 + .quad 45778 + .quad 45843 + .quad 45908 + .quad 45973 + .quad 46038 + .quad 46103 + .quad 46169 + .quad 46235 + .quad 46301 + .quad 46367 + .quad 46433 + .quad 46500 + .quad 46565 + .quad 46630 + .quad 46695 + .quad 46760 + .quad 46825 + .quad 46890 + .quad 46955 + .quad 47020 + .quad 47085 + .quad 47150 + .quad 47216 + .quad 47282 + .quad 47348 + .quad 47414 + .quad 47480 + .quad 47546 + .quad 47612 + .quad 47678 + .quad 47744 + .quad 47810 + .quad 47877 + .quad 47944 + .quad 48011 + .quad 48078 + .quad 48145 + .quad 48212 + .quad 48279 + .quad 48346 + .quad 48413 + .quad 48480 + .quad 48547 + .quad 48614 + .quad 48681 + .quad 48748 + .quad 48815 + .quad 48882 + .quad 48949 + .quad 49016 + .quad 49082 + .quad 49148 + .quad 49214 + .quad 49280 + .quad 49346 + .quad 49412 + .quad 49478 + .quad 49543 + .quad 49608 + .quad 49673 + .quad 49738 + .quad 49804 + .quad 49870 + .quad 49934 + .quad 49998 + .quad 50062 + .quad 50126 + .quad 50190 + .quad 50244 + .quad 50252 + .quad 50258 + .quad 50272 + .quad 50286 + .quad 50309 + .quad 50315 + .quad 50331 + .quad 50346 + .quad 50351 + .quad 50435 + .quad 50518 + .quad 50604 + .quad 50685 + .quad 50781 + .quad 50869 + .quad 50957 + .quad 51039 + .quad 51074 + .quad 51165 + .quad 51253 + .quad 51292 + .quad 51371 + .quad 51389 + .quad 51472 + .quad 51559 + .quad 51641 + .quad 51725 + .quad 51799 + .quad 51872 + .quad 51959 + .quad 52053 + .quad 52139 + .quad 52224 + .quad 52321 + .quad 52332 + .quad 52358 + .quad 52363 +.globl symbol_name +symbol_name: + .asciz "skernel" + .asciz "_start" + .asciz "stext" + .asciz "__alltraps" + .asciz "strampoline" + .asciz "__restore" + .asciz "__alltraps_k" + .asciz "__restore_k" + .asciz "alloc::collections::btree::node::Handle,alloc::collections::btree::node::marker::Edge>::insert_recursing" + .asciz "alloc::collections::btree::node::Handle,alloc::collections::btree::node::marker::Edge>::insert_recursing" + .asciz "alloc::collections::btree::node::Handle,alloc::collections::btree::node::marker::Edge>::insert_recursing" + .asciz "alloc::collections::btree::node::BalancingContext::bulk_steal_left" + .asciz "alloc::collections::btree::node::BalancingContext::bulk_steal_left" + .asciz "alloc::collections::btree::node::BalancingContext::bulk_steal_right" + .asciz "alloc::collections::btree::node::BalancingContext::bulk_steal_right" + .asciz "alloc::collections::btree::node::BalancingContext::merge_tracking_parent" + .asciz "alloc::collections::btree::node::BalancingContext::merge_tracking_parent" + .asciz "alloc::collections::btree::node::BalancingContext::merge_tracking_child_edge" + .asciz "alloc::collections::btree::node::BalancingContext::merge_tracking_child_edge" + .asciz "alloc::collections::btree::remove::,alloc::collections::btree::node::marker::KV>>::remove_leaf_kv" + .asciz "alloc::collections::btree::remove::,alloc::collections::btree::node::marker::KV>>::remove_leaf_kv" + .asciz "alloc::collections::btree::remove::,alloc::collections::btree::node::marker::KV>>::remove_kv_tracking" + .asciz "alloc::collections::btree::remove::,alloc::collections::btree::node::marker::KV>>::remove_kv_tracking" + .asciz "alloc::raw_vec::finish_grow" + .asciz "alloc::raw_vec::RawVec::reserve_for_push" + .asciz "alloc::raw_vec::RawVec::reserve_for_push" + .asciz "alloc::raw_vec::RawVec::reserve_for_push" + .asciz "alloc::raw_vec::RawVec::reserve_for_push" + .asciz "alloc::raw_vec::RawVec::reserve_for_push" + .asciz "alloc::raw_vec::RawVec::reserve_for_push" + .asciz "alloc::raw_vec::RawVec::reserve_for_push" + .asciz "alloc::raw_vec::RawVec::reserve_for_push" + .asciz "alloc::raw_vec::RawVec::reserve_for_push" + .asciz "alloc::raw_vec::RawVec::reserve_for_push" + .asciz "alloc::raw_vec::RawVec::reserve_for_push" + .asciz "alloc::raw_vec::RawVec::reserve_for_push" + .asciz "alloc::raw_vec::RawVec::reserve_for_push" + .asciz "alloc::raw_vec::RawVec::reserve_for_push" + .asciz "alloc::raw_vec::RawVec::reserve_for_push" + .asciz "alloc::raw_vec::RawVec::reserve_for_push" + .asciz "alloc::raw_vec::RawVec::reserve::do_reserve_and_handle" + .asciz "alloc::raw_vec::RawVec::reserve::do_reserve_and_handle" + .asciz "alloc::raw_vec::RawVec::reserve::do_reserve_and_handle" + .asciz "alloc::raw_vec::RawVec::reserve::do_reserve_and_handle" + .asciz "alloc::raw_vec::RawVec::reserve::do_reserve_and_handle" + .asciz "virtio_drivers::net::VirtIONet::new" + .asciz "virtio_drivers::net::VirtIONet::recv" + .asciz "virtio_drivers::net::VirtIONet::send" + .asciz "::type_id" + .asciz "core::ptr::drop_in_place" + .asciz "core::ptr::drop_in_place<&mut os::console::Stdout>" + .asciz "<&mut W as core::fmt::Write>::write_char" + .asciz "<&mut W as core::fmt::Write>::write_fmt" + .asciz "<&mut W as core::fmt::Write>::write_str" + .asciz "alloc::collections::binary_heap::BinaryHeap::pop" + .asciz "alloc::collections::binary_heap::BinaryHeap::push" + .asciz "riscv::register::scause::Scause::cause" + .asciz "os::console::print" + .asciz "os::drivers::gpu::VirtIOGpuWrapper::new" + .asciz "::flush" + .asciz "::get_framebuffer" + .asciz "::update_cursor" + .asciz "os::sync::condvar::Condvar::signal" + .asciz "os::sync::condvar::Condvar::wait_with_mutex" + .asciz "::drop" + .asciz "os::task::id::kstack_alloc" + .asciz "::drop" + .asciz "os::task::id::TaskUserRes::new" + .asciz "os::task::id::TaskUserRes::alloc_user_res" + .asciz "os::task::id::TaskUserRes::trap_cx_ppn" + .asciz "::drop" + .asciz "os::trap::init" + .asciz "trap_handler" + .asciz "trap_return" + .asciz "trap_from_kernel" + .asciz "::deref" + .asciz "virtio_drivers::queue::VirtQueue::add" + .asciz "virtio_drivers::queue::VirtQueue::new" + .asciz "virtio_drivers::queue::VirtQueue::pop_used" + .asciz " as alloc::vec::spec_from_iter::SpecFromIter>::from_iter" + .asciz "os::syscall::process::sys_exit" + .asciz "os::syscall::process::sys_getpid" + .asciz "os::syscall::process::sys_fork" + .asciz "os::syscall::process::sys_exec" + .asciz "os::syscall::process::sys_waitpid" + .asciz "os::syscall::process::sys_kill" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "core::ptr::drop_in_place<&str>" + .asciz "::fmt" + .asciz "tinybmp::Bmp::from_slice" + .asciz "os::fs::inode::OSInode::read_all" + .asciz "os::fs::inode::list_apps" + .asciz "os::fs::inode::open_file" + .asciz "::readable" + .asciz "::writable" + .asciz "::read" + .asciz "::write" + .asciz "os::mm::frame_allocator::frame_alloc" + .asciz "os::mm::frame_allocator::frame_alloc_more" + .asciz "os::mm::frame_allocator::frame_dealloc" + .asciz "os::mm::memory_set::MemorySet::remove_area_with_start_vpn" + .asciz "os::mm::memory_set::MemorySet::push" + .asciz "os::mm::memory_set::MemorySet::new_kernel" + .asciz "os::mm::memory_set::MemorySet::from_elf" + .asciz "os::mm::memory_set::MemorySet::from_existed_user" + .asciz "<&T as core::fmt::Display>::fmt" + .asciz "core::ptr::drop_in_place" + .asciz "core::ptr::drop_in_place" + .asciz "os::mm::init" + .asciz "os::syscall::gui::sys_framebuffer" + .asciz "os::syscall::sync::sys_sleep" + .asciz "os::syscall::sync::sys_mutex_create" + .asciz "os::syscall::sync::sys_mutex_lock" + .asciz "os::syscall::sync::sys_mutex_unlock" + .asciz "os::syscall::sync::sys_semaphore_create" + .asciz "os::syscall::sync::sys_semaphore_up" + .asciz "os::syscall::sync::sys_semaphore_down" + .asciz "os::syscall::sync::sys_condvar_create" + .asciz "os::syscall::sync::sys_condvar_signal" + .asciz "os::syscall::sync::sys_condvar_wait" + .asciz "os::syscall::thread::sys_thread_create" + .asciz "os::syscall::thread::sys_gettid" + .asciz "os::syscall::thread::sys_waittid" + .asciz "::deref" + .asciz "alloc::sync::Arc::drop_slow" + .asciz "alloc::sync::Arc::drop_slow" + .asciz "alloc::sync::Arc::drop_slow" + .asciz "alloc::sync::Arc::drop_slow" + .asciz "alloc::sync::Arc::drop_slow" + .asciz "alloc::sync::Arc::drop_slow" + .asciz "alloc::sync::Arc::drop_slow" + .asciz "alloc::sync::Arc::drop_slow" + .asciz "alloc::sync::Arc::drop_slow" + .asciz "alloc::sync::Arc::drop_slow" + .asciz "alloc::sync::Arc::drop_slow" + .asciz "alloc::sync::Arc::drop_slow" + .asciz "alloc::sync::Arc::drop_slow" + .asciz "alloc::sync::Arc::drop_slow" + .asciz "alloc::sync::Arc::drop_slow" + .asciz "alloc::sync::Arc::drop_slow" + .asciz "alloc::sync::Arc::drop_slow" + .asciz "alloc::sync::Arc::drop_slow" + .asciz "virtio_drivers::blk::VirtIOBlk::read_block" + .asciz "virtio_drivers::blk::VirtIOBlk::write_block" + .asciz "virtio_drivers::blk::VirtIOBlk::new" + .asciz "::type_id" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "core::ptr::drop_in_place" + .asciz "core::array::::fmt" + .asciz "<&mut T as core::fmt::Debug>::fmt" + .asciz "alloc::collections::btree::map::entry::VacantEntry::insert" + .asciz "alloc::collections::btree::map::entry::VacantEntry::insert" + .asciz "alloc::collections::btree::map::entry::VacantEntry::insert" + .asciz "alloc::collections::btree::map::entry::OccupiedEntry::remove_entry" + .asciz "alloc::collections::btree::map::entry::OccupiedEntry::remove_entry" + .asciz " as core::ops::drop::Drop>::drop" + .asciz "os::drivers::input::VirtIOInputWrapper::new" + .asciz "::is_empty" + .asciz "::read_event" + .asciz "::handle_irq" + .asciz "::fmt" + .asciz "os::mm::address::PhysPageNum::get_pte_array" + .asciz "rust_oom" + .asciz "::lock" + .asciz "::unlock" + .asciz "::lock" + .asciz "::unlock" + .asciz "os::syscall::input::sys_event_get" + .asciz "os::net::net_interrupt_handler" + .asciz "::deref" + .asciz "::deref" + .asciz "__rg_alloc" + .asciz "__rg_dealloc" + .asciz "__rg_realloc" + .asciz "__rg_alloc_zeroed" + .asciz "__switch" + .asciz " as core::iter::traits::iterator::Iterator>::fold" + .asciz "core::ptr::drop_in_place<&u8>" + .asciz "core::ptr::drop_in_place" + .asciz "core::ptr::drop_in_place" + .asciz "core::ptr::drop_in_place>" + .asciz "::fmt" + .asciz "trace_lib::my_trace" + .asciz "os::board::device_init" + .asciz "os::board::irq_handler" + .asciz "timervec" + .asciz "::exit_success" + .asciz "::exit_failure" + .asciz "::readable" + .asciz "::writable" + .asciz "::writable" + .asciz "::readable" + .asciz "::read" + .asciz "::write" + .asciz "::read" + .asciz "::write" + .asciz "os::sbi::shutdown" + .asciz "os::syscall::syscall" + .asciz "::readable" + .asciz "::writable" + .asciz "::read" + .asciz "::write" + .asciz "rust_start" + .asciz "os::timer_init" + .asciz "rust_main" + .asciz "::deref" + .asciz "alloc::collections::vec_deque::VecDeque::grow" + .asciz "alloc::collections::vec_deque::VecDeque::grow" + .asciz "alloc::collections::vec_deque::VecDeque::grow" + .asciz "alloc::collections::vec_deque::VecDeque::grow" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::drop::Drop>::drop" + .asciz "os::fs::pipe::make_pipe" + .asciz "::readable" + .asciz "::writable" + .asciz "::read" + .asciz "::write" + .asciz "os::mm::page_table::PageTable::find_pte" + .asciz "os::mm::page_table::PageTable::map" + .asciz "os::mm::page_table::PageTable::unmap" + .asciz "os::mm::page_table::translated_byte_buffer" + .asciz "os::mm::page_table::translated_str" + .asciz "os::task::manager::add_task" + .asciz "os::task::manager::pid2process" + .asciz "os::task::manager::insert_into_pid2process" + .asciz "os::task::manager::remove_from_pid2process" + .asciz "virtio_drivers::input::VirtIOInput::new" + .asciz "::type_id" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "<&T as core::fmt::Display>::fmt" + .asciz "<&T as core::fmt::Display>::fmt" + .asciz "core::ptr::drop_in_place" + .asciz " as os::drivers::chardev::CharDevice>::init" + .asciz " as os::drivers::chardev::CharDevice>::read" + .asciz "::transmit" + .asciz "::receive" + .asciz "rust_begin_unwind" + .asciz "backtrace" + .asciz "os::task::task::TaskControlBlock::get_user_token" + .asciz "os::task::suspend_current_and_run_next" + .asciz "os::task::block_current_task" + .asciz "os::task::exit_current_and_run_next" + .asciz "os::task::add_initproc" + .asciz "os::task::check_signals_of_current" + .asciz "os::task::current_add_signal" + .asciz "core::ptr::drop_in_place" + .asciz "core::ptr::drop_in_place" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_access" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_access" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_access" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_access" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_access" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_access" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_access" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_access" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_access" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_access" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_access" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_access" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_access" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_access" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_access" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_access" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_access" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_access" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_access" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_access" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_access" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_access" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_access" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_session" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_session" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_session" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_session" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_session" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_session" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_session" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_session" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_session" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_session" + .asciz "os::sync::up::UPIntrFreeCell::exclusive_session" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::deref::DerefMut>::deref_mut" + .asciz "core::ptr::drop_in_place" + .asciz "core::ptr::drop_in_place" + .asciz "core::ptr::drop_in_place" + .asciz "core::ptr::drop_in_place" + .asciz "spin::once::Once::call_once" + .asciz "spin::once::Once::call_once" + .asciz "spin::once::Once::call_once" + .asciz "spin::once::Once::call_once" + .asciz "spin::once::Once::call_once" + .asciz "spin::once::Once::call_once" + .asciz "spin::once::Once::call_once" + .asciz "spin::once::Once::call_once" + .asciz "spin::once::Once::call_once" + .asciz "spin::once::Once::call_once" + .asciz "spin::once::Once::call_once" + .asciz "spin::once::Once::call_once" + .asciz "spin::once::Once::call_once" + .asciz "spin::once::Once::call_once" + .asciz "spin::once::Once::call_once" + .asciz "spin::once::Once::call_once" + .asciz "spin::once::Once::call_once" + .asciz "spin::once::Once::call_once" + .asciz "spin::once::Once::call_once" + .asciz "::type_id" + .asciz "core::ptr::drop_in_place<&i32>" + .asciz "core::ptr::drop_in_place<&u16>" + .asciz "core::ptr::drop_in_place<&usize>" + .asciz "core::ptr::drop_in_place" + .asciz "core::ptr::drop_in_place<&[u8; 4]>" + .asciz "core::ptr::drop_in_place<&os::mm::memory_set::MapType>" + .asciz "core::ptr::drop_in_place" + .asciz "core::panicking::assert_failed" + .asciz "core::panicking::assert_failed" + .asciz "core::panicking::assert_failed" + .asciz "core::panicking::assert_failed" + .asciz "core::panicking::assert_failed" + .asciz "::read_block" + .asciz "::write_block" + .asciz "::handle_irq" + .asciz "os::drivers::block::virtio_blk::VirtIOBlock::new" + .asciz "::dma_alloc" + .asciz "::virt_to_phys" + .asciz "os::sync::semaphore::Semaphore::up" + .asciz "os::sync::semaphore::Semaphore::down" + .asciz "os::syscall::net::sys_connect" + .asciz "os::task::processor::run_tasks" + .asciz "os::task::processor::current_process" + .asciz "os::task::processor::current_user_token" + .asciz "os::task::processor::current_trap_cx" + .asciz "os::task::processor::current_trap_cx_user_va" + .asciz "os::net::socket::get_socket" + .asciz "os::net::socket::add_socket" + .asciz "os::net::socket::remove_socket" + .asciz "os::net::socket::push_data" + .asciz "os::net::socket::pop_data" + .asciz "core::ptr::drop_in_place" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::drop::Drop>::drop" + .asciz " as core::ops::drop::Drop>::drop" + .asciz "os::task::process::ProcessControlBlockInner::alloc_fd" + .asciz "os::task::process::ProcessControlBlock::new" + .asciz "os::task::process::ProcessControlBlock::exec" + .asciz "os::task::process::ProcessControlBlock::fork" + .asciz "virtio_drivers::gpu::VirtIOGpu::setup_cursor" + .asciz "virtio_drivers::gpu::VirtIOGpu::setup_framebuffer" + .asciz "virtio_drivers::gpu::VirtIOGpu::resource_create_2d" + .asciz "virtio_drivers::gpu::VirtIOGpu::transfer_to_host_2d" + .asciz "virtio_drivers::gpu::VirtIOGpu::resource_attach_backing" + .asciz "virtio_drivers::gpu::VirtIOGpu::new" + .asciz "virtio_drivers::gpu::VirtIOGpu::flush" + .asciz "<&mut T as core::fmt::Debug>::fmt" + .asciz "__rust_alloc" + .asciz "__rust_dealloc" + .asciz "__rust_realloc" + .asciz "__rust_alloc_zeroed" + .asciz "__rust_alloc_error_handler" + .asciz "xmas_elf::header::HeaderPt2::entry_point" + .asciz "xmas_elf::header::HeaderPt2::ph_count" + .asciz "xmas_elf::program::parse_program_header" + .asciz "xmas_elf::program::ProgramHeader::get_type" + .asciz "xmas_elf::program::Flags::is_execute" + .asciz "xmas_elf::program::Flags::is_write" + .asciz "xmas_elf::program::Flags::is_read" + .asciz "xmas_elf::program::ProgramHeader::file_size" + .asciz "xmas_elf::program::ProgramHeader::mem_size" + .asciz "xmas_elf::program::ProgramHeader::offset" + .asciz "xmas_elf::program::ProgramHeader::virtual_addr" + .asciz "xmas_elf::program::ProgramHeader::flags" + .asciz "xmas_elf::ElfFile::new" + .asciz "xmas_elf::ElfFile::program_header" + .asciz "trace_lib::InstructionSp::new" + .asciz "trace_lib::sd_ra" + .asciz "lose_net_stack::addr::IPv4::new" + .asciz "lose_net_stack::addr::IPv4::from_u32" + .asciz "lose_net_stack::addr::MacAddress::new" + .asciz "lose_net_stack::packets::udp::UDPPacket::new" + .asciz "lose_net_stack::packets::udp::UDPPacket::build_data" + .asciz "lose_net_stack::packets::arp::ArpPacket::build_data" + .asciz "lose_net_stack::packets::arp::ArpPacket::reply_packet" + .asciz "lose_net_stack::LoseStack::new" + .asciz "lose_net_stack::LoseStack::analysis" + .asciz "::fmt" + .asciz "buddy_system_allocator::Heap::init" + .asciz "buddy_system_allocator::Heap::alloc" + .asciz "buddy_system_allocator::Heap::dealloc" + .asciz "::deref" + .asciz "::deref" + .asciz "::alloc" + .asciz "::dealloc" + .asciz "::dealloc" + .asciz "tinybmp::header::Bpp::parse" + .asciz "tinybmp::header::Bpp::bits" + .asciz "tinybmp::header::Header::parse" + .asciz "tinybmp::header::CompressionMethod::parse" + .asciz "tinybmp::header::dib_header::DibHeader::parse" + .asciz ">::parse" + .asciz ">::parse" + .asciz "tinybmp::raw_bmp::RawBmp::from_slice" + .asciz "tinybmp::raw_bmp::RawBmp::color_bpp" + .asciz "tinybmp::raw_bmp::RawBmp::color_table" + .asciz "tinybmp::raw_bmp::RawBmp::image_data" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "core::ptr::drop_in_place<&u16>" + .asciz "::fmt" + .asciz "nom::internal::Needed::new" + .asciz "embedded_graphics_core::geometry::size::Size::new" + .asciz "easy_fs::vfs::Inode::find_inode_id" + .asciz "easy_fs::vfs::Inode::find" + .asciz "easy_fs::vfs::Inode::increase_size" + .asciz "easy_fs::vfs::Inode::create" + .asciz "easy_fs::vfs::Inode::ls" + .asciz "easy_fs::vfs::Inode::read_at" + .asciz "easy_fs::vfs::Inode::write_at" + .asciz "easy_fs::vfs::Inode::clear" + .asciz "core::ptr::drop_in_place" + .asciz "easy_fs::layout::DiskInode::get_block_id" + .asciz "easy_fs::layout::DiskInode::increase_size" + .asciz "easy_fs::layout::DiskInode::clear_size" + .asciz "easy_fs::layout::DiskInode::read_at" + .asciz "easy_fs::layout::DiskInode::write_at" + .asciz "easy_fs::layout::DirEntry::name" + .asciz "core::ptr::drop_in_place<&u32>" + .asciz "core::ptr::drop_in_place<&usize>" + .asciz "core::panicking::assert_failed" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "alloc::raw_vec::finish_grow" + .asciz "alloc::raw_vec::RawVec::reserve_for_push" + .asciz "alloc::raw_vec::RawVec::reserve_for_push" + .asciz "easy_fs::block_cache::BlockCache::read" + .asciz "easy_fs::block_cache::BlockCache::read" + .asciz "easy_fs::block_cache::BlockCache::read" + .asciz "easy_fs::block_cache::BlockCache::modify" + .asciz "easy_fs::block_cache::BlockCache::modify" + .asciz "easy_fs::block_cache::BlockCache::modify" + .asciz "easy_fs::block_cache::BlockCache::modify" + .asciz "easy_fs::block_cache::BlockCache::modify" + .asciz "easy_fs::block_cache::BlockCache::modify" + .asciz "easy_fs::block_cache::BlockCache::modify" + .asciz "easy_fs::block_cache::get_block_cache" + .asciz "easy_fs::block_cache::block_cache_sync_all" + .asciz "spin::once::Once::call_once" + .asciz "easy_fs::efs::EasyFileSystem::open" + .asciz "easy_fs::efs::EasyFileSystem::root_inode" + .asciz "easy_fs::efs::EasyFileSystem::dealloc_data" + .asciz " as core::iter::traits::iterator::Iterator>::try_fold" + .asciz " as core::iter::traits::iterator::Iterator>::try_fold" + .asciz "alloc::collections::vec_deque::VecDeque::grow" + .asciz "alloc::collections::vec_deque::VecDeque::wrap_copy" + .asciz " as core::ops::drop::Drop>::drop" + .asciz "easy_fs::bitmap::Bitmap::alloc" + .asciz "easy_fs::bitmap::Bitmap::dealloc" + .asciz " as core::ops::drop::Drop>::drop" + .asciz "alloc::sync::Arc::drop_slow" + .asciz "alloc::sync::Arc::drop_slow" + .asciz "::drop" + .asciz "::fmt" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "core::ptr::drop_in_place<&u32>" + .asciz "::fmt" + .asciz "virtio_drivers::gpu::CtrlHeader::with_type" + .asciz "virtio_drivers::gpu::CtrlHeader::check_type" + .asciz "::fmt" + .asciz "::fmt" + .asciz "::fmt" + .asciz "virtio_drivers::header::VirtIOHeader::finish_init" + .asciz "virtio_drivers::header::VirtIOHeader::read_device_features" + .asciz "virtio_drivers::header::VirtIOHeader::write_driver_features" + .asciz "virtio_drivers::header::VirtIOHeader::queue_set" + .asciz "virtio_drivers::header::VirtIOHeader::queue_used" + .asciz "virtio_drivers::header::VirtIOHeader::max_queue_size" + .asciz "virtio_drivers::header::VirtIOHeader::notify" + .asciz "virtio_drivers::header::VirtIOHeader::ack_interrupt" + .asciz "virtio_drivers::header::VirtIOHeader::config_space" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "::fmt" + .asciz "::fmt" + .asciz "virtio_drivers::queue::VirtQueueLayout::new" + .asciz "virtio_drivers::pages" + .asciz "::fmt" + .asciz "core::ptr::drop_in_place<&u32>" + .asciz "virtio_drivers::blk::BlkResp::status" + .asciz "::default" + .asciz "::fmt" + .asciz "::fmt" + .asciz "::fmt" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "core::ptr::drop_in_place<&u8>" + .asciz " as core::fmt::Debug>::fmt" + .asciz " as core::fmt::Debug>::fmt" + .asciz "core::ptr::drop_in_place<&&str>" + .asciz "::enabled" + .asciz "::log" + .asciz "::flush" + .asciz "log::__private_api_log" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "core::ptr::drop_in_place<&riscv::register::scause::Exception>" + .asciz "riscv::register::scause::Interrupt::from" + .asciz "riscv::register::scause::Exception::from" + .asciz "riscv::register::scause::Scause::code" + .asciz "::fmt" + .asciz "::fmt" + .asciz "::fmt" + .asciz "core::ops::function::FnOnce::call_once" + .asciz "core::ptr::drop_in_place<&u8>" + .asciz "<&mut W as core::fmt::Write>::write_char" + .asciz "<&mut W as core::fmt::Write>::write_fmt" + .asciz "<&mut W as core::fmt::Write>::write_str" + .asciz "alloc::raw_vec::RawVec::reserve::do_reserve_and_handle" + .asciz "alloc::raw_vec::RawVec::reserve_for_push" + .asciz "alloc::raw_vec::finish_grow" + .asciz "alloc::raw_vec::capacity_overflow" + .asciz "alloc::alloc::handle_alloc_error" + .asciz "alloc::alloc::handle_alloc_error::rt_error" + .asciz "__rg_oom" + .asciz "alloc::collections::btree::node::splitpoint" + .asciz "alloc::fmt::format::format_inner" + .asciz "alloc::string::String::push" + .asciz "::clone" + .asciz "alloc::vec::Vec::remove::assert_failed" + .asciz "core::ops::function::FnOnce::call_once" + .asciz "core::ops::function::FnOnce::call_once" + .asciz "core::ops::function::FnOnce::call_once" + .asciz "core::ops::function::FnOnce::call_once" + .asciz "core::ops::function::FnOnce::call_once" + .asciz "core::ptr::drop_in_place<&core::iter::adapters::copied::Copied>>" + .asciz "core::intrinsics::const_eval_select" + .asciz " as core::fmt::Debug>::fmt" + .asciz "::type_id" + .asciz "::fmt" + .asciz "core::option::expect_failed" + .asciz "core::panic::panic_info::PanicInfo::message" + .asciz "core::panic::panic_info::PanicInfo::location" + .asciz "core::panicking::panic" + .asciz "core::panicking::panic_str" + .asciz "core::panicking::panic_display" + .asciz "core::panicking::panic_bounds_check" + .asciz "core::panicking::panic_fmt" + .asciz "core::panicking::assert_failed" + .asciz "core::panicking::assert_failed_inner" + .asciz "core::result::unwrap_failed" + .asciz "::write_str" + .asciz "core::fmt::builders::DebugStruct::field" + .asciz "core::fmt::builders::DebugStruct::finish" + .asciz "core::fmt::builders::DebugTuple::field" + .asciz "core::fmt::builders::DebugInner::entry" + .asciz "core::fmt::builders::DebugSet::entry" + .asciz "core::fmt::builders::DebugList::entry" + .asciz "core::fmt::builders::DebugList::finish" + .asciz "core::fmt::Write::write_char" + .asciz "core::fmt::Write::write_fmt" + .asciz "<&mut W as core::fmt::Write>::write_str" + .asciz "<&mut W as core::fmt::Write>::write_char" + .asciz "<&mut W as core::fmt::Write>::write_fmt" + .asciz "::fmt" + .asciz "core::fmt::write" + .asciz "core::fmt::Formatter::pad_integral" + .asciz "core::fmt::Formatter::pad_integral::write_prefix" + .asciz "core::fmt::Formatter::pad" + .asciz "core::fmt::Formatter::write_str" + .asciz "::write_str" + .asciz "core::fmt::Formatter::write_fmt" + .asciz "::write_fmt" + .asciz "core::fmt::Formatter::debug_lower_hex" + .asciz "core::fmt::Formatter::debug_upper_hex" + .asciz "core::fmt::Formatter::debug_struct" + .asciz "core::fmt::Formatter::debug_struct_field4_finish" + .asciz "core::fmt::Formatter::debug_struct_field5_finish" + .asciz "core::fmt::Formatter::debug_struct_fields_finish" + .asciz "core::fmt::Formatter::debug_tuple_field1_finish" + .asciz "core::fmt::Formatter::debug_list" + .asciz "::fmt" + .asciz "::fmt" + .asciz "::fmt" + .asciz "core::slice::index::slice_start_index_len_fail" + .asciz "core::slice::index::slice_start_index_len_fail_rt" + .asciz "core::slice::index::slice_end_index_len_fail" + .asciz "core::slice::index::slice_end_index_len_fail_rt" + .asciz "core::slice::index::slice_index_order_fail" + .asciz "core::slice::index::slice_index_order_fail_rt" + .asciz "core::slice::index::slice_end_index_overflow_fail" + .asciz "core::slice::::copy_from_slice::len_mismatch_fail" + .asciz "core::str::converts::from_utf8" + .asciz "core::str::count::do_count_chars" + .asciz "core::str::slice_error_fail" + .asciz "core::str::slice_error_fail_rt" + .asciz "core::unicode::printable::check" + .asciz "core::unicode::printable::is_printable" + .asciz "::fmt" + .asciz "core::fmt::num::::fmt" + .asciz "core::fmt::num::::fmt" + .asciz "core::fmt::num::::fmt" + .asciz "core::fmt::num::::fmt" + .asciz "core::fmt::num::::fmt" + .asciz "core::fmt::num::::fmt" + .asciz "core::fmt::num::::fmt" + .asciz "core::fmt::num::::fmt" + .asciz "core::fmt::num::::fmt" + .asciz "core::fmt::num::::fmt" + .asciz "core::fmt::num::::fmt" + .asciz "core::fmt::num::::fmt" + .asciz "core::fmt::num::::fmt" + .asciz "core::fmt::num::::fmt" + .asciz "core::fmt::num::::fmt" + .asciz "core::fmt::num::::fmt" + .asciz "core::fmt::num::::fmt" + .asciz "core::fmt::num::::fmt" + .asciz "core::fmt::num::::fmt" + .asciz "core::fmt::num::::fmt" + .asciz "core::fmt::num::::fmt" + .asciz "core::fmt::num::::fmt" + .asciz "core::fmt::num::::fmt" + .asciz "core::fmt::num::::fmt" + .asciz "core::fmt::num::::fmt" + .asciz "core::fmt::num::imp::fmt_u64" + .asciz "core::fmt::num::imp::::fmt" + .asciz "core::fmt::num::imp::::fmt" + .asciz "core::fmt::num::imp::::fmt" + .asciz "core::fmt::num::imp::::fmt" + .asciz "core::fmt::num::imp::::fmt" + .asciz "core::fmt::num::imp::::fmt" + .asciz "core::fmt::num::imp::::fmt" + .asciz "core::fmt::num::imp::::fmt" + .asciz "::fmt" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "<&T as core::fmt::Debug>::fmt" + .asciz "<&T as core::fmt::Display>::fmt" + .asciz "::fmt" + .asciz "core::unicode::unicode_data::grapheme_extend::lookup" + .asciz "::fmt" + .asciz "memmove" + .asciz "memcmp" + .asciz "memset" + .asciz "memcpy" + .asciz "compiler_builtins::mem::memcpy" + .asciz "compiler_builtins::mem::memmove" + .asciz "compiler_builtins::mem::memset" + .asciz "compiler_builtins::mem::memcmp" + .asciz "anon.4b911a85d51cf3581488bf37cf13dd3a.1.llvm.11268362036384062497" + .asciz "etext" + .asciz "srodata" + .asciz "anon.4b911a85d51cf3581488bf37cf13dd3a.2.llvm.11268362036384062497" + .asciz "anon.4b911a85d51cf3581488bf37cf13dd3a.4.llvm.11268362036384062497" + .asciz "anon.4b911a85d51cf3581488bf37cf13dd3a.5.llvm.11268362036384062497" + .asciz "anon.4b911a85d51cf3581488bf37cf13dd3a.6.llvm.11268362036384062497" + .asciz "anon.4b911a85d51cf3581488bf37cf13dd3a.12.llvm.11268362036384062497" + .asciz "anon.4b911a85d51cf3581488bf37cf13dd3a.13.llvm.11268362036384062497" + .asciz "anon.4b911a85d51cf3581488bf37cf13dd3a.35.llvm.11268362036384062497" + .asciz "anon.4b911a85d51cf3581488bf37cf13dd3a.36.llvm.11268362036384062497" + .asciz "anon.4b911a85d51cf3581488bf37cf13dd3a.37.llvm.11268362036384062497" + .asciz "anon.862a2180a7a31a15304d40941dc4486f.17.llvm.9688167096614078669" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.0.llvm.5859315453174299026" + .asciz "anon.595796f9b7ac15107def679665dceec3.3.llvm.7705241275685202402" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.37.llvm.15412816992501787601" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.54.llvm.5859315453174299026" + .asciz "anon.f54620e91403bbba143a2a3092bbd0ce.7.llvm.15101194769884667637" + .asciz "anon.f54620e91403bbba143a2a3092bbd0ce.12.llvm.15101194769884667637" + .asciz "anon.f54620e91403bbba143a2a3092bbd0ce.13.llvm.15101194769884667637" + .asciz "anon.f54620e91403bbba143a2a3092bbd0ce.14.llvm.15101194769884667637" + .asciz "anon.f54620e91403bbba143a2a3092bbd0ce.15.llvm.15101194769884667637" + .asciz "anon.f54620e91403bbba143a2a3092bbd0ce.26.llvm.15101194769884667637" + .asciz "anon.f54620e91403bbba143a2a3092bbd0ce.27.llvm.15101194769884667637" + .asciz "anon.f54620e91403bbba143a2a3092bbd0ce.28.llvm.15101194769884667637" + .asciz "anon.f54620e91403bbba143a2a3092bbd0ce.29.llvm.15101194769884667637" + .asciz "anon.f54620e91403bbba143a2a3092bbd0ce.30.llvm.15101194769884667637" + .asciz "anon.f54620e91403bbba143a2a3092bbd0ce.31.llvm.15101194769884667637" + .asciz "anon.f54620e91403bbba143a2a3092bbd0ce.32.llvm.15101194769884667637" + .asciz "anon.f54620e91403bbba143a2a3092bbd0ce.33.llvm.15101194769884667637" + .asciz "anon.f54620e91403bbba143a2a3092bbd0ce.34.llvm.15101194769884667637" + .asciz "anon.f54620e91403bbba143a2a3092bbd0ce.37.llvm.15101194769884667637" + .asciz "anon.f54620e91403bbba143a2a3092bbd0ce.38.llvm.15101194769884667637" + .asciz "anon.fb3a9aa036c5bd1844bdcac26706046c.0.llvm.18192535244552573427" + .asciz "os::drivers::gpu::GPU_DEVICE" + .asciz "anon.fb3a9aa036c5bd1844bdcac26706046c.1.llvm.18192535244552573427" + .asciz "anon.fb3a9aa036c5bd1844bdcac26706046c.2.llvm.18192535244552573427" + .asciz "anon.fb3a9aa036c5bd1844bdcac26706046c.3.llvm.18192535244552573427" + .asciz "anon.fb3a9aa036c5bd1844bdcac26706046c.4.llvm.18192535244552573427" + .asciz "anon.fb3a9aa036c5bd1844bdcac26706046c.5.llvm.18192535244552573427" + .asciz "anon.fb3a9aa036c5bd1844bdcac26706046c.6.llvm.18192535244552573427" + .asciz "anon.fb3a9aa036c5bd1844bdcac26706046c.12.llvm.18192535244552573427" + .asciz "anon.fb3a9aa036c5bd1844bdcac26706046c.15.llvm.18192535244552573427" + .asciz "anon.fb3a9aa036c5bd1844bdcac26706046c.16.llvm.18192535244552573427" + .asciz "anon.fb3a9aa036c5bd1844bdcac26706046c.17.llvm.18192535244552573427" + .asciz "anon.fb3a9aa036c5bd1844bdcac26706046c.18.llvm.18192535244552573427" + .asciz "anon.fb3a9aa036c5bd1844bdcac26706046c.19.llvm.18192535244552573427" + .asciz "anon.fb3a9aa036c5bd1844bdcac26706046c.20.llvm.18192535244552573427" + .asciz "anon.fb3a9aa036c5bd1844bdcac26706046c.21.llvm.18192535244552573427" + .asciz "anon.4263d8c46121fdf016fd8a54b7dda903.1.llvm.12960313981900283508" + .asciz "anon.4263d8c46121fdf016fd8a54b7dda903.2.llvm.12960313981900283508" + .asciz "anon.2d260ac5ac640106fcb8aa5c25bd7b76.27.llvm.13064429698106995504" + .asciz "anon.2d260ac5ac640106fcb8aa5c25bd7b76.69.llvm.13064429698106995504" + .asciz "anon.2d260ac5ac640106fcb8aa5c25bd7b76.64.llvm.13064429698106995504" + .asciz "anon.f496281537c3c19695b54aa2f57ec5ea.0.llvm.10344818627785487408" + .asciz "anon.d98a0382ceafcf74ce28f54f0b08496a.36.llvm.8087189868723100451" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.17.llvm.5859315453174299026" + .asciz "anon.04a40d7a4aefb0eb1248f61155d89d9a.41.llvm.3534975616616610067" + .asciz "anon.4263d8c46121fdf016fd8a54b7dda903.10.llvm.12960313981900283508" + .asciz "anon.4263d8c46121fdf016fd8a54b7dda903.11.llvm.12960313981900283508" + .asciz "anon.4263d8c46121fdf016fd8a54b7dda903.12.llvm.12960313981900283508" + .asciz "anon.4263d8c46121fdf016fd8a54b7dda903.13.llvm.12960313981900283508" + .asciz "anon.4263d8c46121fdf016fd8a54b7dda903.14.llvm.12960313981900283508" + .asciz "anon.4263d8c46121fdf016fd8a54b7dda903.15.llvm.12960313981900283508" + .asciz "anon.04a40d7a4aefb0eb1248f61155d89d9a.25.llvm.3534975616616610067" + .asciz "anon.911c3e5874c6fbed894557149354945f.0.llvm.3021502609581363098" + .asciz "os::mm::memory_set::KERNEL_SPACE" + .asciz "anon.911c3e5874c6fbed894557149354945f.1.llvm.3021502609581363098" + .asciz "anon.911c3e5874c6fbed894557149354945f.2.llvm.3021502609581363098" + .asciz "anon.911c3e5874c6fbed894557149354945f.7.llvm.3021502609581363098" + .asciz "anon.911c3e5874c6fbed894557149354945f.8.llvm.3021502609581363098" + .asciz "anon.911c3e5874c6fbed894557149354945f.9.llvm.3021502609581363098" + .asciz "anon.911c3e5874c6fbed894557149354945f.10.llvm.3021502609581363098" + .asciz "anon.911c3e5874c6fbed894557149354945f.11.llvm.3021502609581363098" + .asciz "anon.911c3e5874c6fbed894557149354945f.12.llvm.3021502609581363098" + .asciz "anon.911c3e5874c6fbed894557149354945f.21.llvm.3021502609581363098" + .asciz "anon.911c3e5874c6fbed894557149354945f.22.llvm.3021502609581363098" + .asciz "anon.911c3e5874c6fbed894557149354945f.24.llvm.3021502609581363098" + .asciz "anon.911c3e5874c6fbed894557149354945f.27.llvm.3021502609581363098" + .asciz "anon.911c3e5874c6fbed894557149354945f.33.llvm.3021502609581363098" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.1.llvm.5859315453174299026" + .asciz "os::drivers::chardev::UART" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.2.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.3.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.4.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.5.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.18.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.19.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.20.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.21.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.22.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.23.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.24.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.25.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.26.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.27.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.28.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.29.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.35.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.36.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.38.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.47.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.48.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.49.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.50.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.55.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.56.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.57.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.59.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.60.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.61.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.62.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.63.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.64.llvm.5859315453174299026" + .asciz "anon.5fafa75baeb5612eb7ebf99815a3895b.65.llvm.5859315453174299026" + .asciz "os::drivers::input::MOUSE_DEVICE" + .asciz "os::drivers::input::KEYBOARD_DEVICE" + .asciz "anon.2d260ac5ac640106fcb8aa5c25bd7b76.5.llvm.13064429698106995504" + .asciz "anon.2d260ac5ac640106fcb8aa5c25bd7b76.28.llvm.13064429698106995504" + .asciz "anon.2d260ac5ac640106fcb8aa5c25bd7b76.29.llvm.13064429698106995504" + .asciz "anon.2d260ac5ac640106fcb8aa5c25bd7b76.30.llvm.13064429698106995504" + .asciz "anon.2d260ac5ac640106fcb8aa5c25bd7b76.65.llvm.13064429698106995504" + .asciz "anon.2d260ac5ac640106fcb8aa5c25bd7b76.66.llvm.13064429698106995504" + .asciz "anon.2d260ac5ac640106fcb8aa5c25bd7b76.67.llvm.13064429698106995504" + .asciz "anon.2d260ac5ac640106fcb8aa5c25bd7b76.68.llvm.13064429698106995504" + .asciz "anon.2d260ac5ac640106fcb8aa5c25bd7b76.70.llvm.13064429698106995504" + .asciz "anon.2d260ac5ac640106fcb8aa5c25bd7b76.71.llvm.13064429698106995504" + .asciz "anon.04a40d7a4aefb0eb1248f61155d89d9a.7.llvm.3534975616616610067" + .asciz "os::DEV_NON_BLOCKING_ACCESS" + .asciz "anon.04a40d7a4aefb0eb1248f61155d89d9a.14.llvm.3534975616616610067" + .asciz "anon.04a40d7a4aefb0eb1248f61155d89d9a.20.llvm.3534975616616610067" + .asciz "anon.04a40d7a4aefb0eb1248f61155d89d9a.21.llvm.3534975616616610067" + .asciz "anon.04a40d7a4aefb0eb1248f61155d89d9a.24.llvm.3534975616616610067" + .asciz "anon.04a40d7a4aefb0eb1248f61155d89d9a.30.llvm.3534975616616610067" + .asciz "anon.04a40d7a4aefb0eb1248f61155d89d9a.31.llvm.3534975616616610067" + .asciz "anon.04a40d7a4aefb0eb1248f61155d89d9a.32.llvm.3534975616616610067" + .asciz "anon.04a40d7a4aefb0eb1248f61155d89d9a.33.llvm.3534975616616610067" + .asciz "anon.04a40d7a4aefb0eb1248f61155d89d9a.37.llvm.3534975616616610067" + .asciz "anon.04a40d7a4aefb0eb1248f61155d89d9a.38.llvm.3534975616616610067" + .asciz "anon.04a40d7a4aefb0eb1248f61155d89d9a.39.llvm.3534975616616610067" + .asciz "anon.04a40d7a4aefb0eb1248f61155d89d9a.42.llvm.3534975616616610067" + .asciz "anon.04a40d7a4aefb0eb1248f61155d89d9a.43.llvm.3534975616616610067" + .asciz "anon.04a40d7a4aefb0eb1248f61155d89d9a.44.llvm.3534975616616610067" + .asciz "anon.04a40d7a4aefb0eb1248f61155d89d9a.45.llvm.3534975616616610067" + .asciz "symbol_num" + .asciz "anon.d98a0382ceafcf74ce28f54f0b08496a.0.llvm.8087189868723100451" + .asciz "symbol_address" + .asciz "symbol_index" + .asciz "symbol_name" + .asciz "anon.d98a0382ceafcf74ce28f54f0b08496a.1.llvm.8087189868723100451" + .asciz "anon.d98a0382ceafcf74ce28f54f0b08496a.2.llvm.8087189868723100451" + .asciz "anon.d98a0382ceafcf74ce28f54f0b08496a.8.llvm.8087189868723100451" + .asciz "anon.d98a0382ceafcf74ce28f54f0b08496a.9.llvm.8087189868723100451" + .asciz "anon.d98a0382ceafcf74ce28f54f0b08496a.10.llvm.8087189868723100451" + .asciz "anon.d98a0382ceafcf74ce28f54f0b08496a.11.llvm.8087189868723100451" + .asciz "anon.d98a0382ceafcf74ce28f54f0b08496a.13.llvm.8087189868723100451" + .asciz "anon.d98a0382ceafcf74ce28f54f0b08496a.14.llvm.8087189868723100451" + .asciz "anon.d98a0382ceafcf74ce28f54f0b08496a.18.llvm.8087189868723100451" + .asciz "anon.d98a0382ceafcf74ce28f54f0b08496a.19.llvm.8087189868723100451" + .asciz "anon.d98a0382ceafcf74ce28f54f0b08496a.23.llvm.8087189868723100451" + .asciz "anon.d98a0382ceafcf74ce28f54f0b08496a.37.llvm.8087189868723100451" + .asciz "anon.d98a0382ceafcf74ce28f54f0b08496a.38.llvm.8087189868723100451" + .asciz "anon.d98a0382ceafcf74ce28f54f0b08496a.39.llvm.8087189868723100451" + .asciz "anon.d98a0382ceafcf74ce28f54f0b08496a.40.llvm.8087189868723100451" + .asciz "anon.f496281537c3c19695b54aa2f57ec5ea.1.llvm.10344818627785487408" + .asciz "anon.f496281537c3c19695b54aa2f57ec5ea.2.llvm.10344818627785487408" + .asciz "anon.f496281537c3c19695b54aa2f57ec5ea.3.llvm.10344818627785487408" + .asciz "anon.f496281537c3c19695b54aa2f57ec5ea.4.llvm.10344818627785487408" + .asciz "anon.f496281537c3c19695b54aa2f57ec5ea.5.llvm.10344818627785487408" + .asciz "anon.f496281537c3c19695b54aa2f57ec5ea.6.llvm.10344818627785487408" + .asciz "anon.f496281537c3c19695b54aa2f57ec5ea.7.llvm.10344818627785487408" + .asciz "anon.f496281537c3c19695b54aa2f57ec5ea.8.llvm.10344818627785487408" + .asciz "anon.f496281537c3c19695b54aa2f57ec5ea.9.llvm.10344818627785487408" + .asciz "anon.f496281537c3c19695b54aa2f57ec5ea.10.llvm.10344818627785487408" + .asciz "anon.f496281537c3c19695b54aa2f57ec5ea.11.llvm.10344818627785487408" + .asciz "anon.f496281537c3c19695b54aa2f57ec5ea.12.llvm.10344818627785487408" + .asciz "anon.f496281537c3c19695b54aa2f57ec5ea.13.llvm.10344818627785487408" + .asciz "anon.f496281537c3c19695b54aa2f57ec5ea.14.llvm.10344818627785487408" + .asciz "anon.f496281537c3c19695b54aa2f57ec5ea.15.llvm.10344818627785487408" + .asciz "anon.f496281537c3c19695b54aa2f57ec5ea.16.llvm.10344818627785487408" + .asciz "anon.f496281537c3c19695b54aa2f57ec5ea.17.llvm.10344818627785487408" + .asciz "anon.862a2180a7a31a15304d40941dc4486f.0.llvm.9688167096614078669" + .asciz "anon.862a2180a7a31a15304d40941dc4486f.1.llvm.9688167096614078669" + .asciz "anon.862a2180a7a31a15304d40941dc4486f.2.llvm.9688167096614078669" + .asciz "anon.862a2180a7a31a15304d40941dc4486f.3.llvm.9688167096614078669" + .asciz "anon.862a2180a7a31a15304d40941dc4486f.4.llvm.9688167096614078669" + .asciz "anon.862a2180a7a31a15304d40941dc4486f.5.llvm.9688167096614078669" + .asciz "anon.862a2180a7a31a15304d40941dc4486f.6.llvm.9688167096614078669" + .asciz "anon.862a2180a7a31a15304d40941dc4486f.7.llvm.9688167096614078669" + .asciz "anon.862a2180a7a31a15304d40941dc4486f.8.llvm.9688167096614078669" + .asciz "anon.862a2180a7a31a15304d40941dc4486f.9.llvm.9688167096614078669" + .asciz "anon.862a2180a7a31a15304d40941dc4486f.10.llvm.9688167096614078669" + .asciz "anon.862a2180a7a31a15304d40941dc4486f.11.llvm.9688167096614078669" + .asciz "anon.862a2180a7a31a15304d40941dc4486f.12.llvm.9688167096614078669" + .asciz "anon.862a2180a7a31a15304d40941dc4486f.13.llvm.9688167096614078669" + .asciz "anon.862a2180a7a31a15304d40941dc4486f.14.llvm.9688167096614078669" + .asciz "anon.862a2180a7a31a15304d40941dc4486f.15.llvm.9688167096614078669" + .asciz "anon.862a2180a7a31a15304d40941dc4486f.16.llvm.9688167096614078669" + .asciz "anon.862a2180a7a31a15304d40941dc4486f.18.llvm.9688167096614078669" + .asciz "anon.862a2180a7a31a15304d40941dc4486f.19.llvm.9688167096614078669" + .asciz "anon.862a2180a7a31a15304d40941dc4486f.20.llvm.9688167096614078669" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.3.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.5.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.6.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.7.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.11.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.13.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.19.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.20.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.21.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.22.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.23.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.24.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.25.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.26.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.33.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.34.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.35.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.36.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.37.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.38.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.42.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.43.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.45.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.47.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.48.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.50.llvm.1327921005567361246" + .asciz "anon.03c5ce3d113b649f257a58176d7298f2.52.llvm.1327921005567361246" + .asciz "anon.a8be5aab1c5398aebbd3460de432de8c.0.llvm.2858392631485200336" + .asciz "anon.4879ebbc883c4bbd9a0df543603a7559.1.llvm.1992413399604524181" + .asciz "anon.4879ebbc883c4bbd9a0df543603a7559.2.llvm.1992413399604524181" + .asciz "anon.4879ebbc883c4bbd9a0df543603a7559.4.llvm.1992413399604524181" + .asciz "anon.4879ebbc883c4bbd9a0df543603a7559.5.llvm.1992413399604524181" + .asciz "anon.4879ebbc883c4bbd9a0df543603a7559.6.llvm.1992413399604524181" + .asciz "anon.4879ebbc883c4bbd9a0df543603a7559.7.llvm.1992413399604524181" + .asciz "anon.1e03c4f6346492c094c7ec1291d54b66.5.llvm.13406059172380923135" + .asciz "anon.1e03c4f6346492c094c7ec1291d54b66.6.llvm.13406059172380923135" + .asciz "anon.1e03c4f6346492c094c7ec1291d54b66.7.llvm.13406059172380923135" + .asciz "anon.1e03c4f6346492c094c7ec1291d54b66.8.llvm.13406059172380923135" + .asciz "anon.1e03c4f6346492c094c7ec1291d54b66.9.llvm.13406059172380923135" + .asciz "anon.1e03c4f6346492c094c7ec1291d54b66.10.llvm.13406059172380923135" + .asciz "anon.d74710986f61b501a22854b591c03291.0.llvm.6854127431528152524" + .asciz "anon.d74710986f61b501a22854b591c03291.5.llvm.6854127431528152524" + .asciz "anon.d74710986f61b501a22854b591c03291.6.llvm.6854127431528152524" + .asciz "anon.d74710986f61b501a22854b591c03291.7.llvm.6854127431528152524" + .asciz "anon.d74710986f61b501a22854b591c03291.8.llvm.6854127431528152524" + .asciz "anon.595796f9b7ac15107def679665dceec3.0.llvm.7705241275685202402" + .asciz "anon.595796f9b7ac15107def679665dceec3.1.llvm.7705241275685202402" + .asciz "anon.595796f9b7ac15107def679665dceec3.2.llvm.7705241275685202402" + .asciz "anon.595796f9b7ac15107def679665dceec3.4.llvm.7705241275685202402" + .asciz "anon.76d6fe46374dac2c8326e485dafa486a.8.llvm.3830274489057120371" + .asciz "anon.76d6fe46374dac2c8326e485dafa486a.21.llvm.3830274489057120371" + .asciz "anon.3181c7ba5c88a9b96a26fb14a17f5c50.1.llvm.13268878403972821721" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.0.llvm.15412816992501787601" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.3.llvm.15412816992501787601" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.4.llvm.15412816992501787601" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.5.llvm.15412816992501787601" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.6.llvm.15412816992501787601" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.7.llvm.15412816992501787601" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.8.llvm.15412816992501787601" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.9.llvm.15412816992501787601" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.12.llvm.15412816992501787601" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.13.llvm.15412816992501787601" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.14.llvm.15412816992501787601" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.15.llvm.15412816992501787601" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.16.llvm.15412816992501787601" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.17.llvm.15412816992501787601" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.19.llvm.15412816992501787601" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.20.llvm.15412816992501787601" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.26.llvm.15412816992501787601" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.29.llvm.15412816992501787601" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.31.llvm.15412816992501787601" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.32.llvm.15412816992501787601" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.34.llvm.15412816992501787601" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.35.llvm.15412816992501787601" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.36.llvm.15412816992501787601" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.38.llvm.15412816992501787601" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.39.llvm.15412816992501787601" + .asciz "anon.6c456bd04a8dc809e14a49b138ed272c.40.llvm.15412816992501787601" + .asciz "anon.cfb845abf8d05c2a4e1098564cf8e1a7.0.llvm.16655801716346725160" + .asciz "anon.cfb845abf8d05c2a4e1098564cf8e1a7.1.llvm.16655801716346725160" + .asciz "anon.cfb845abf8d05c2a4e1098564cf8e1a7.2.llvm.16655801716346725160" + .asciz "anon.cfb845abf8d05c2a4e1098564cf8e1a7.3.llvm.16655801716346725160" + .asciz "anon.cfb845abf8d05c2a4e1098564cf8e1a7.4.llvm.16655801716346725160" + .asciz "anon.e58371c69ea67651aff0c1e9b8127d59.0.llvm.15056201291056703624" + .asciz "anon.e58371c69ea67651aff0c1e9b8127d59.2.llvm.15056201291056703624" + .asciz "anon.41f79963c69e9c3b540897bfed9ebc12.1.llvm.3551546544581069250" + .asciz "anon.41f79963c69e9c3b540897bfed9ebc12.3.llvm.3551546544581069250" + .asciz "anon.41f79963c69e9c3b540897bfed9ebc12.4.llvm.3551546544581069250" + .asciz "anon.41f79963c69e9c3b540897bfed9ebc12.5.llvm.3551546544581069250" + .asciz "anon.29f606a6344402991cf95538583ef9e3.1.llvm.14429392161889529873" + .asciz "anon.29f606a6344402991cf95538583ef9e3.2.llvm.14429392161889529873" + .asciz "anon.9513395c69080e548ab4ab022bacf368.0.llvm.633157336403734994" + .asciz "anon.9513395c69080e548ab4ab022bacf368.1.llvm.633157336403734994" + .asciz "anon.9513395c69080e548ab4ab022bacf368.2.llvm.633157336403734994" + .asciz "anon.9513395c69080e548ab4ab022bacf368.3.llvm.633157336403734994" + .asciz "core::unicode::unicode_data::grapheme_extend::SHORT_OFFSET_RUNS" + .asciz "core::unicode::unicode_data::grapheme_extend::OFFSETS" + .asciz "erodata" + .asciz "sdata" + .asciz "log::LOGGER.0" + .asciz "log::LOGGER.1" + .asciz "boot_stack_lower_bound" + .asciz "edata" + .asciz "sbss_with_stack" + .asciz "boot_stack_top" + .asciz "sbss" + .asciz "::deref::__stability::LAZY" + .asciz "::deref::__stability::LAZY" + .asciz "::deref::__stability::LAZY" + .asciz "::deref::__stability::LAZY" + .asciz "::deref::__stability::LAZY" + .asciz "::deref::__stability::LAZY" + .asciz "::deref::__stability::LAZY" + .asciz "::deref::__stability::LAZY" + .asciz "os::mm::heap_allocator::HEAP_SPACE" + .asciz "::deref::__stability::LAZY" + .asciz "::deref::__stability::LAZY" + .asciz "os::mm::heap_allocator::HEAP_ALLOCATOR" + .asciz "::deref::__stability::LAZY" + .asciz "os::TIMER_SCRATCH" + .asciz "::deref::__stability::LAZY" + .asciz "::deref::__stability::LAZY" + .asciz "::deref::__stability::LAZY" + .asciz "::deref::__stability::LAZY" + .asciz "::deref::__stability::LAZY" + .asciz "::deref::__stability::LAZY" + .asciz "::deref::__stability::LAZY" + .asciz "::deref::__stability::LAZY" + .asciz "::deref::__stability::LAZY" + .asciz "::deref::__stability::LAZY" + .asciz "::deref::__stability::LAZY" + .asciz "log::STATE" + .asciz "log::MAX_LOG_LEVEL_FILTER" + .asciz "ebss" + .asciz "ekernel" diff --git a/os/src/trace/mod.rs b/os/src/trace/mod.rs new file mode 100644 index 000000000..fadca3cc4 --- /dev/null +++ b/os/src/trace/mod.rs @@ -0,0 +1,75 @@ +use alloc::string::{String, ToString}; +use alloc::vec::Vec; +use core::arch::global_asm; +use trace_lib::Symbol; + + +#[derive(Debug, Clone)] +pub struct SymbolEntry { + addr: usize, + symbol_str: String, +} + + +impl SymbolEntry { + pub fn new(addr: usize, symbol_str: String) -> Self { + Self { addr, symbol_str } + } +} + +impl Symbol for SymbolEntry { + fn addr(&self) -> usize { + self.addr + } + fn name(&self) -> &str { + &self.symbol_str + } +} + +extern "C" { + fn symbol_num(); + fn symbol_address(); + fn symbol_index(); + fn symbol_name(); +} + +global_asm!(include_str!("kernel_symbol.S")); +pub fn init_kernel_trace() -> Vec { + let symbol_num_addr = symbol_num as usize as *const usize; + let symbol_num = unsafe { symbol_num_addr.read_volatile() }; + let mut symbol_info = Vec::new(); + if symbol_num==0 { + return symbol_info; + } + let symbol_addr = symbol_address as usize as *const usize; //符号地址存储区域 + let addr_data = unsafe { core::slice::from_raw_parts(symbol_addr, symbol_num) }; + let symbol_index = symbol_index as usize as *const usize; //符号字符串的起始位置 + let index_data = unsafe { core::slice::from_raw_parts(symbol_index, symbol_num) }; + let symbol_name = symbol_name as usize as *const u8; //符号字符串 + for i in 0..symbol_num - 1 { + let name = unsafe { + core::slice::from_raw_parts( + symbol_name.add(index_data[i]), + index_data[i + 1] - index_data[i], + ) + }; + let name = core::str::from_utf8(name).unwrap(); + symbol_info.push(SymbolEntry::new(addr_data[i], name.to_string())); + } + let mut name: Vec = Vec::new(); + unsafe { + for i in index_data[symbol_num - 1].. { + let c = symbol_name.add(i); + if *c == 0 { + break; + } + name.push(*c); + } + } + let name = core::str::from_utf8(&name).unwrap(); + symbol_info.push(SymbolEntry::new( + addr_data[symbol_num - 1], + name.to_string(), + )); + symbol_info +} From e6b253c0bb22593191208894c9e7929c6516e73e Mon Sep 17 00:00:00 2001 From: Godones <1925466036@qq.com> Date: Thu, 9 Feb 2023 21:54:35 +0800 Subject: [PATCH 2/2] fix: recover the DISASM flag --- os/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/os/Makefile b/os/Makefile index 9dbcdb634..9038de1f0 100644 --- a/os/Makefile +++ b/os/Makefile @@ -31,7 +31,7 @@ OBJDUMP := rust-objdump --arch-name=riscv64 OBJCOPY := rust-objcopy --binary-architecture=riscv64 # Disassembly -DISASM ?= -d +DISASM ?= -X # Run usertests or usershell TEST ?=