-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
(old) PPCSymbolDB: Refactor SymbolMap Save/Load #13195
Conversation
As #13113 was merged, this PR is ready to be reviewed and tested. |
I assume I should be able to just load an existing symbol map, then re-save and this should apply? |
Indeed that should work. It won't restore symbols which have already damaged (e.g. |
If I have my map file in the \maps folder and use this build, Dolphin crashes on game boot (flatpak x64).
If I have no map file, boot the game, place the map file in \maps folder, and then choose Load Map This is my map incase it's useful: I verified the latest dev flatpak works as expected with the map. |
An update on this, interestingly compiling your branch on Windows I can't reproduce the crash. |
I was trying to reproduce it on Windows and couldn't as well. I'll try to compile it on Linux and check if it gives similar results to the flatpak build. Otherwise, I'll try to rebase the PR to see if it fixes the issue. |
Just tried DolphinCI flatpak artifact on a fresh user folder on my desktop, it worked fine. I think maybe the other install had some config issue, ill see if I can reproduce on the laptop again. |
This is not the case.
I compiled your branch on Linux and do not experience the crash. If you have any suggestions on how I can hook a debugger to the flatpak build or otherwise, let me know. I don't really see any useful logs. -- Adding my discord post here too:I'm trying to figure out why I get a crash when loading a symbol map on sepalani's PR. But only on a laptop and the flatpak. |
Update parse_entry_of in accordance to the sscanf change
Oh that crash is unrelated. This game is unstable with DX12 backend. Use DX11 or Vulkan when testing any thing relating to this game. DX11 is most stable for Windows. |
Bad news, your rebased PR still has the issue. As for why its exclusive to two+ GPU hosts and with flatpaks only, I have no idea. |
// Should never happen | ||
Common::Unreachable(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you also throw in something that outputs to Dolphin logs, just to see if I am hitting this somehow in the flatpak?
I don't see any Unreachable/Bad columns in the logs, and nothing sticks out when the program crashes |
@dreamsyntax I moved the changed to the new PR and also addressed @mitaclaw's comment about the |
This PR refactors parts of the loading/saving process of symbol map.
I'm putting it as a draft for now as I'd like to wait for https://dolp.in/pr13113 to be merged first.This PR fixes issues I had where some symbols weren't loaded properly (which might get saved later). Here are some examples on how they can alter existing symbol maps.
The alignment wasn't properly detected and
0
was detected asname
bysscanf
.This issue was also caused by the
namepos
/strstr
logic which is flawed when the name is small and equals to part of the symbol address, size or vaddress. Moreover, checking for a space doesn't work when alignment is 16. I've seen this alignment value on some*fill*
symbols.savegpr / loadgpr entry wasn't properly detected
This issue also trimmed the object names after the "entry of" part.
This PR is ready to be reviewed and tested. I also advise people testing this PR to backup their symbol maps just in case or test this PR in a dedicated portable build.