Coder Social home page Coder Social logo

Pauses after resuming about pince HOT 16 CLOSED

korcankaraokcu avatar korcankaraokcu commented on May 19, 2024
Pauses after resuming

from pince.

Comments (16)

korcankaraokcu avatar korcankaraokcu commented on May 19, 2024 2

I've changed the plan and implemented a solution without touching the settings file.

With this commit, you can now use gdbinit file provided by PINCE to execute any gdb command before attaching to the program. So you should just append handle SIGPWR nostop to the gdbinit file. It can be found in ~/.config/PINCE/PINCE_USER_FILES/gdbinit

I've solved this problem 10 days ago but forgot to tell you, sorry about that. I forget things quickly.

from pince.

korcankaraokcu avatar korcankaraokcu commented on May 19, 2024 2

This issue now has its place in the wiki, check here
Edit: Updated the link, wiki page has been updated as well. Init files can now execute libPINCE functions automatically

from pince.

korcankaraokcu avatar korcankaraokcu commented on May 19, 2024 1

I've found it! received signal SIGPWR, Power fail/restart, there you go. This looks like a gdb-specific error which usually occurs while attaching to processes written with mono. You can try ignoring this signal to continue working on this game. Open the gdb console from top right in the main window(black terminal thingy) and execute this command from there: handle SIGPWR nostop. If that doesn't work try these too: handle SIGPWR pass and handle SIGPWR nopass

Detailed information here

from pince.

korcankaraokcu avatar korcankaraokcu commented on May 19, 2024 1

In fact I've planned this feature long time ago. See the bottom part of readme file. It reads:

Hearthstone(It interrupts itself with SIGUSR1 whenever continued, implementing signal passing on PINCE might be very useful in future)

So, at last, the future has come! 😃 I'll implement this feature similar to how Ollydbg does. An interface that contains list of signals and radioboxes aligned to them to determine what to do with the signals. The options will be nostop, pass, nopass etc. But I'm going thru a series of exams right now. So, I'll be busy this entire week. Considering the other important bugfixes in the current development plan, expect this feature to be implemented in 2 weeks. Until that day, I'm closing this issue. Thanks for reporting this bug.

from pince.

ivanskodje avatar ivanskodje commented on May 19, 2024 1

Best of luck on your exams! (I know the pain and suffering you are going through)

from pince.

korcankaraokcu avatar korcankaraokcu commented on May 19, 2024 1

Settings menu now offers an option to ignore some signals, you don't need to modify init files for those signals anymore. Wiki page of init files has been updated

from pince.

ivanskodje avatar ivanskodje commented on May 19, 2024 1

I came to search up this problem again, and just happen to find this thread via a ducksearch, only to discover that I was the one that posted this thread! Small world, huh?

Thank you for the fix, going into setting and disabling the signal helped 🥳

from pince.

korcankaraokcu avatar korcankaraokcu commented on May 19, 2024

No, this is not intentionally designed. This only happened to me once and the game was Hearthstone. Some games are known to have some kind of anti-debugging behavior. Could you send me the logfile? It can be found in /tmp/PINCE-connection/pid/gdb_log.txt

Also, could you tell me what output PINCE gives in the terminal when the inferior pauses itself? You should see something like this:

~"1 \"kmines\" received signal SIGINT, Interrupt.\n"
~"0x00007f3132efbb5d in poll () from /lib/x86_64-linux-gnu/libc.so.6\n"
*stopped,reason="signal-received",signal-name="SIGINT",signal-meaning="Interrupt",frame={addr="0x00007f3132efbb5d",func="poll",args=[],from="/lib/x86_64-linux-gnu/libc.so.6"},thread-id="1",stopped-threads="all",core="1"

So, in your case it should read something like:
~"1 \"kmines\" received signal SIGUSR1, Interrupt.\n"
I believe that it's a custom signal.

from pince.

korcankaraokcu avatar korcankaraokcu commented on May 19, 2024

Also, forgot to ask. What's the title of the game?

from pince.

ivanskodje avatar ivanskodje commented on May 19, 2024

Game: 7 Days to Die
Logfile: gdb_log.txt

from pince.

korcankaraokcu avatar korcankaraokcu commented on May 19, 2024

I can't seem to find something like "received signal bla bla" in that logfile, are you sure that you sent me the logfile after the self-pausing event?

from pince.

ivanskodje avatar ivanskodje commented on May 19, 2024

https://pastebin.com/dh99RkeP
I made sure to try it again, got the pause-issue and closed the program.

from pince.

ivanskodje avatar ivanskodje commented on May 19, 2024

Very nice.
Although for future improvements: Would it not be beneficial for the majority of users if that was the default? After all, if you are reverse engineering/debugging, you would probably set your own breakpoints and such. :)
(I don't really know, as I have not really been working on that yet)

from pince.

ThubLives avatar ThubLives commented on May 19, 2024

Could SIGXCPU be added to the Handle Signals options? I've seen this in more than one Unity game.

from pince.

korcankaraokcu avatar korcankaraokcu commented on May 19, 2024

https://superuser.com/a/1185648

You are right, apparently SIGPWR and SIGXCPU are used to trigger the garbage collector in mono runtime. I've added SIGXCPU to the ignore list. Just pull the latest changes, no reinstallation is required, enjoy

from pince.

korcankaraokcu avatar korcankaraokcu commented on May 19, 2024

Handle signals menu now includes all signals

from pince.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.