-
Notifications
You must be signed in to change notification settings - Fork 135
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
crashlog: add method names from bindings #625
base: main
Are you sure you want to change the base?
Conversation
Adds a basic system to read a "GeometryDash.bro" file (currently has to be placed manually into `Geometry Dash/geode` directory) and get function names from it to include them in the stacktrace.
This is a pretty cool addition, very impressive! |
Thanks for your feedback, I will try to implement your proposals.
I agree, because I'm not familiar with internal structure of the project. That's why I wanted to hear some thoughts.
Didn't know about that, will check it. 😆
Yeah, this actually sounds like a more clean solution. The only downside is probably that bindings file would only be updated alongside loader updates, but I guess that it doesn't need to always have most up-to-date bindings to begin with. Also I don't think it would apply to anything other than Windows because of how bindings work on other platforms (maybe it might work on macOS, but I can't be sure). |
codegen generates a CodegenData.txt file, i think this can be embbeded instead |
this change adds a simple regex-based codegen into CMakeLists.txt, which creates a new header file containing an unordered_map with all function addresses mapped to their respective names
Figured out how to embed CodegenData.txt into the binary (codegen for codegen :0), so now it works without having to store the broma file locally. |
Adds a basic system to read a "GeometryDash.bro" file (currently has to be placed manually into
Geometry Dash/geode
directory) and get function names from it to include them in the stacktrace.This change makes crashlog look like this:
Unknown methods are also easier to find, because it prints the address where the method starts, instead of only the instruction address.
Some comments/questions:
Waiting for your feedback :)