-
Notifications
You must be signed in to change notification settings - Fork 135
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in 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 :)