 |
Cheat Engine The Official Site of Cheat Engine
|
| View previous topic :: View next topic |
| Author |
Message |
fakerlol Newbie cheater
Reputation: 0
Joined: 06 Feb 2016 Posts: 21
|
Posted: Wed Nov 25, 2020 1:24 pm Post subject: Mono features getting disabled when stepping code |
|
|
So I've been using CheatEngine for some time now and was mesmerized by the Mono utilities which were introduced some years ago.
I really love the freedom this gives to me, as I can not only change minor things, but can even add whole modifications of the game without having to spend hours trying to figure out where to hook into and what how methods are linked together.
As far as I can recall, I was able to set a breakpoint somewhere with Mono features enabled (and seeing the labels instead of addresses) and use the debugger to step within the code.
For at least 2 major updates it won't work for me, at all. Whenever I use the debugger to step withint the code or "find out what writes to an adress", CE disables the Mono features with a LUA-Error ("Failed to launch..."), leaving me with boring hexadecimal addresses instead of labels.
With the latest release (v7.2) it outright hangs up for several seconds up to a minute before displaying an error.
Isn't the Mono features supposed to work with the (VEH) debugger or am I just the odd one out?
This really kills my joy working with mono-code, as I have to re-enable Mono features every time I "deep-dived" into the code
|
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 471
Joined: 09 May 2003 Posts: 25831 Location: The netherlands
|
Posted: Wed Nov 25, 2020 2:04 pm Post subject: |
|
|
When you look at an address, CE will ask the mono process what the name of that address is
If it takes longer than 3 seconds, ce will disconnect from the mono system to prevent a full freeze
When a breakpoint hits, CE also asks that mono process what the name is, but since the target process is frozen, it will not respond, so therefore it will disconnect.
In the previous version where CE didn't disconnect, CE would try not show any symbols at all if any breakpoint is set or the target is halted on a breakpoint, but since sometimes a breakpoint hits because the address is fetched, that would cause CE to freeze infinitely, so I went for a timeout system instead.
At least this way you don't have to restart CE when a breakpoint hits
But try https://raw.githubusercontent.com/cheat-engine/cheat-engine/master/Cheat%20Engine/bin/autorun/monoscript.lua
it shouldn't disconnect that quickly (Just not show any symbols when debugging, and IF the mono dll is the one triggering the BP, still disconnect)
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
| Back to top |
|
 |
fakerlol Newbie cheater
Reputation: 0
Joined: 06 Feb 2016 Posts: 21
|
Posted: Wed Nov 25, 2020 4:12 pm Post subject: |
|
|
| Dark Byte wrote: | When you look at an address, CE will ask the mono process what the name of that address is
If it takes longer than 3 seconds, ce will disconnect from the mono system to prevent a full freeze
When a breakpoint hits, CE also asks that mono process what the name is, but since the target process is frozen, it will not respond, so therefore it will disconnect.
In the previous version where CE didn't disconnect, CE would try not show any symbols at all if any breakpoint is set or the target is halted on a breakpoint, but since sometimes a breakpoint hits because the address is fetched, that would cause CE to freeze infinitely, so I went for a timeout system instead.
At least this way you don't have to restart CE when a breakpoint hits
But try https://raw.githubusercontent.com/cheat-engine/cheat-engine/master/Cheat%20Engine/bin/autorun/monoscript.lua
it shouldn't disconnect that quickly (Just not show any symbols when debugging, and IF the mono dll is the one triggering the BP, still disconnect) |
Using the monoscript.lua in your link leads to no symbols shown at all (even though I can use symbols to jump into a method for example).
So while I can debug using mono features, I can't see any symbols in the memory window, which is a real bummer.
I don't quite understand why this is a problem in the first place: I can remember that for the longest time, I was able to use Mono features while stepping through my code. Then it started to get buggy for some of the minor versions with 6.x and with the major version 7.x I wasn't able to use it while debugging at all.
Especially when I want to dissect a structure using an adress fetched from a register, the mono features came in handy.
Now, I need to set a breakpoint to some line of code where the needed adress is calculated already, remove the breakpoint and use the adress in the dissect window - all while hoping that continuing to that breakpoint doesn't deactive mono features.
Is this the desired workflow with mono-executables or am I just doing something wrong?
|
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 471
Joined: 09 May 2003 Posts: 25831 Location: The netherlands
|
Posted: Wed Nov 25, 2020 4:58 pm Post subject: |
|
|
Sorry, that script had a typo. Try again
the 6.x versions would never show symbols, and even then still sometimes end in a complete lockout of CE as it would freeze if a breakpoint did happen. If it worked, it'd likely be .net or a .PDB with data, but not mono
You just need to understand that it's literally impossible to query mono routines while the target is suspended. Maybe in some rare cases where you use VEH debug and the collector thread is not suspended it may work, but modern versions of mono are more thread safe and will apply locks to certain structures, so asking for a name for an address will cause mono to acquire an method lock, which will then have to wait for the current mono method to finish executing, so infinite lock if that method is the one currently halted on a breakpoint and that address's name is being queried
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
| Back to top |
|
 |
fakerlol Newbie cheater
Reputation: 0
Joined: 06 Feb 2016 Posts: 21
|
Posted: Wed Nov 25, 2020 5:37 pm Post subject: |
|
|
Damn, now that you mention it, I had .pdb's or native .net applications when using the debugger, so it seemed to work flawlessly.
Seems that I confused .net with mono, so your explanation does make a lot of sense.
Yeah, back to learning more about the backend I guess.
Thanks for your fast replies DB!
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
|