2.2 KiB
Development
- Windows: Windows Building Guide
- Linux: Linux Building Guide
- Android: Android Building Guide
- Solaris: Solaris Building Guide
- FreeBSD: FreeBSD Building Guide
- macOS: macOS Building Guide
How to test JIT
gdb
Run ./build/bin/eden-cli -c <path to your config file (see logs where you run eden normally to see where it is)> -d -g <path to game>
Then hook up an aarch64-gdb (use yay aarch64-gdb or sudo pkg in arch64-gdb to install)
Then type target remote localhost:1234 and type c (for continue) - and then if it crashes just do a bt (backtrace) and layout asm.
gdb cheatsheet
c: Continuep <expr>: Print variable,p/x <expr>for hexadecimal.r: Runbt: Print backtraceinfo threads: Print all active threadsthread <number>: Switch to the given thread (seeinfo threads)layout asm: Display in assembly mode (TUI)si: Step assembly instructionsorstep: Step over LINE OF CODE (not assembly)display <expr>: Display variable each step.n: Next (skips over call frame of a function)frame <number>: Switches to the given frame (frombt)br <expr>: Set breakpoint at<expr>.delete: Deletes all breakpoints.catch throw: Breakpoint at throw. Can also usebr __cxa_throw
Expressions can be variable_names or 1234 (numbers) or *var (dereference of a pointer) or *(1 + var) (computed expression).
For more information type info gdb and read the man page.
Bisecting
Each commit should be buildable (independently) so bisecting is easier. See git-bisect for more information.
Notes
Since going into the past can be tricky (especially due to the dependencies from the project being lost thru time). This should "restore" the URLs for the respective submodules.
#!/bin/sh
rm .gitmodules
wget -O .gitmodules https://git.eden-emu.dev/eden-emu/eden/raw/branch/master/.gitmodules
git submodule update --init --recursive
If you're not on Linux I'm sorry for you. Git gud.