Hello,
I am attempting to recomp a game that I verified the TOML for was correct and paths were correct and get a segmentation fault on Image::ParseImage with no backtrace explanation as it is being called from Recompiler::LoadConfig, I have my gdb log I will post with this but I used this TOML in Windows as well and got a seg fault as well but it was before I fixed my pathings as I had absolute pathing instead of relative. Is there a way to recompile XenonRecomp to have debug symbols so I have some better debugging?
gdb log:
`gdb --args ./XenonRecomp/XenonRecomp ../disc1stuff/LO.toml ../XenonUtils/ppc_context.h
GNU gdb (GDB) 17.2
Copyright (C) 2025 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
https://www.gnu.org/software/gdb/bugs/.
Find the GDB manual and other documentation resources online at:
http://www.gnu.org/software/gdb/documentation/.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./XenonRecomp/XenonRecomp...
This GDB supports auto-downloading debuginfo from the following URLs:
https://debuginfod.archlinux.org
Enable debuginfod for this session? (y or [n]) y
Debuginfod has been enabled.
To make this setting permanent, add 'set debuginfod enabled on' to .gdbinit.
(No debugging symbols found in ./XenonRecomp/XenonRecomp)
(gdb) start
Temporary breakpoint 1 at 0x27cd0
Starting program: /home/nick/Documents/LostOdysseyRecomp/build/XenonRecomp/XenonRecomp ../disc1stuff/LO.toml ../XenonUtils/ppc_context.h
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Temporary breakpoint 1, 0x000055555557bcd0 in main ()
(gdb) bt
#0 0x000055555557bcd0 in main ()
(gdb) continue
Continuing.
Program received signal SIGSEGV, Segmentation fault.
0x00005555555c1411 in Image::ParseImage(unsigned char const*, unsigned long) ()
(gdb) bt
#0 0x00005555555c1411 in Image::ParseImage(unsigned char const*, unsigned long) ()
#1 0x000055555557d088 in Recompiler::LoadConfig(std::basic_string_view<char, std::char_traits > const&) ()
#2 0x000055555557c002 in main ()
(gdb) EDIT: adding game toml[main]
file_path = "../../Lost Odyssey Disc 1/default.xex"
out_directory_path = "./ppc/"
switch_table_file_path = "./jumptable.toml"
skip_lr = false
skip_msr = false
ctr_as_local = false
xer_as_local = false
reserved_as_local = false
cr_as_local = false
non_argument_as_local = false
non_volatile_as_local = false
restgprlr_14_address = 0x82B7A700
savegprlr_14_address = 0x82B7A6B0
restfpr_14_address = 0x82B7B17C
savefpr_14_address = 0x82B7B130
restvmx_14_address = 0x82DF2D98
savevmx_14_address = 0x82DF2B00
restvmx_64_address = 0x82DF2E2C
savevmx_64_address = 0x82DF2B94`
Hello,
I am attempting to recomp a game that I verified the TOML for was correct and paths were correct and get a segmentation fault on Image::ParseImage with no backtrace explanation as it is being called from Recompiler::LoadConfig, I have my gdb log I will post with this but I used this TOML in Windows as well and got a seg fault as well but it was before I fixed my pathings as I had absolute pathing instead of relative. Is there a way to recompile XenonRecomp to have debug symbols so I have some better debugging?
gdb log:
`gdb --args ./XenonRecomp/XenonRecomp ../disc1stuff/LO.toml ../XenonUtils/ppc_context.h
GNU gdb (GDB) 17.2
Copyright (C) 2025 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
https://www.gnu.org/software/gdb/bugs/.
Find the GDB manual and other documentation resources online at:
http://www.gnu.org/software/gdb/documentation/.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./XenonRecomp/XenonRecomp...
This GDB supports auto-downloading debuginfo from the following URLs:
https://debuginfod.archlinux.org
Enable debuginfod for this session? (y or [n]) y
Debuginfod has been enabled.
To make this setting permanent, add 'set debuginfod enabled on' to .gdbinit.
(No debugging symbols found in ./XenonRecomp/XenonRecomp)
(gdb) start
Temporary breakpoint 1 at 0x27cd0
Starting program: /home/nick/Documents/LostOdysseyRecomp/build/XenonRecomp/XenonRecomp ../disc1stuff/LO.toml ../XenonUtils/ppc_context.h
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Temporary breakpoint 1, 0x000055555557bcd0 in main ()
(gdb) bt
#0 0x000055555557bcd0 in main ()
(gdb) continue
Continuing.
Program received signal SIGSEGV, Segmentation fault.
0x00005555555c1411 in Image::ParseImage(unsigned char const*, unsigned long) ()
(gdb) bt
#0 0x00005555555c1411 in Image::ParseImage(unsigned char const*, unsigned long) ()
#1 0x000055555557d088 in Recompiler::LoadConfig(std::basic_string_view<char, std::char_traits > const&) ()
#2 0x000055555557c002 in main ()
(gdb)
EDIT: adding game toml[main]file_path = "../../Lost Odyssey Disc 1/default.xex"
out_directory_path = "./ppc/"
switch_table_file_path = "./jumptable.toml"
skip_lr = false
skip_msr = false
ctr_as_local = false
xer_as_local = false
reserved_as_local = false
cr_as_local = false
non_argument_as_local = false
non_volatile_as_local = false
restgprlr_14_address = 0x82B7A700
savegprlr_14_address = 0x82B7A6B0
restfpr_14_address = 0x82B7B17C
savefpr_14_address = 0x82B7B130
restvmx_14_address = 0x82DF2D98
savevmx_14_address = 0x82DF2B00
restvmx_64_address = 0x82DF2E2C
savevmx_64_address = 0x82DF2B94`