UserspaceEmulator: Support dynamically loaded programs

When loading dynamic objects, the emulator loads the interpreter,
generates an auxiliary vector and starts executing the loader.

Additionally, this commits also makes the MallocTracer and backtrace
symbolication work for dynamically loaded programs.
This commit is contained in:
Itamar 2020-11-23 20:00:35 +02:00 committed by Andreas Kling
commit 72ca45e300
Notes: sideshowbarker 2024-07-19 00:50:07 +09:00
9 changed files with 247 additions and 64 deletions

View file

@ -254,6 +254,8 @@ static FlatPtr loader_main(auxv_t* auxvp)
}
}
ASSERT(main_program_fd >= 0);
ASSERT(!main_program_name.is_null());
dbgln("loading: {}", main_program_name);
map_library(main_program_name, main_program_fd);
map_dependencies(main_program_name);