Open damajor opened 1 year ago
I've tested this on KMines and Firefox but was unable to reproduce the issue. Which program did you try this on? Also, what distro do you use?
A second glance at the log tells me that 2nd breakpoint was deleted while PINCE was trying to use it. Is your breakpoint triggered a lot? For this to happen, it should be triggered at least 10 times a second. But you are right about the racing condition
https://github.com/korcankaraokcu/PINCE/commit/f9f5b37663985f1569bcaa73d2ecf2dd8e3354db should fix the racing softlock. But of course it might not be a definitive fix for breakpoint racing conditions. More stress tests will be done
Upon further testing, there seems to be no critical bugs left with this issue. For minor effects, another issue could be opened with reproduction steps. Closing this issue
Consider opening this issue again. I just came upon it. It happens when attaching to Stellaris. There is no need to do anything special other than just finding some variable, adding it to the list and then doing an "What access this address" It freezes without fail after a couple of seconds.
I am using Linux Mint 21.3 Virginia 64-bit Kernel Linux 5.15.0-119-generic x86_64 MATE 1.26.0 32 Gig ram
Try doing the same thing in Cheat Engine, either by using CEServer (if the game is Linux native) or by running it under the same Proton prefix.
From our experience, some games tend to crash CE or freeze PINCE using this feature so it's nothing we can do from our side.
This issue was created for the "What accesses this address" feature for addresses that has been accessed very frequently, around 1000 times a second. Try using the same feature on other addresses that doesn't get accessed frequently and see if the issue persists. If it does, your issue might not related to this one.
Hmm, yeah it was accessed quite frequently from one place, something like 360 times in about a second (or less) before if froze. It is still somewhat usable though, The game doesn't crash so I can write down the adresses and restart Pince and set up a different circumstance and run again, weeding out the one I'm looking for.
I'll reopen the issue for you. Please write down the reproduction steps in detail. Also, make sure that you are using the native build on Steam. I'll try to reproduce this on my end as well.
Native build. Yes, check.
On my end this will read hits from 3 different addresses, one of them will reach a couple of hundreds and then Pince freezes.
I couldn't find Rogue Defence System in the campaign start menu, maybe I didn't have the required DLC. However, I've followed the rest of the steps and found the planet size and successfully executed the "Find out what reads this address" feature multiple times without anything crashing. PINCE sometimes becomes unable to stop the process but that's a bug on GDB's side and it's an entirely different issue
Maybe you are using an outdated version of PINCE. There has been several patches regarding GDB racing issues. What's your PINCE version?
Edit: I've now also tried using the "Find out what accesses this address" feature and I get the 3 accessing instructions as you mentioned. This tanks my frame rate and occasionally pops up "Can't access memory at expression $pc" message box but that's another minor racing issue that doesn't result in crashing
@Mind78 A reminder to continue the conversation so we don't leave issues hanging
I think I ran into another freeze issue. It is pretty annoying :)
My steps to reproduce:
Freeze is almost always coming after 3rd or 4rth tries, and it happens even more faster if you kill & restart PINCE without restarting the target process.
Here is the kind of error I have in console output:
The
KeyError
is always matching the number of time I use "Find out what accesses this address" feature.Unfortunately I was NOT able to recover using the workaround you mentioned in the previous post.
Edit: After some console output reading it looks like some kind of race condition between thread, but I am not that familiar with your code to pinpoint the root cause.
Working output:
Freezing output:
Also in the freezing output we can see that after
*stopped
line there is noLast command: pince-examine-expressions
before*running,thread-id="all"
.I tested more with a single (or maybe low) threaded app like galculator (Gnome calculator) and I am not able to reproduce the issue.
So if multiples target process threads try to access the memory location watched by PINCE, that seems to lead to some issues in PINCE processing.
I hope this will help.