GithubHelp home page GithubHelp logo

Comments (9)

korcankaraokcu avatar korcankaraokcu commented on September 22, 2024

I can't seem to reproduce this on my end. Are you sure you are continuing after the breakpoint hits? Or maybe that feature is finding way too many addresses, like thousands per second. Can you provide an excerpt from console when the process freezes?

from pince.

Madghostek avatar Madghostek commented on September 22, 2024
compressed.mp4

Here is video of me having the issue with console output, the only suspicious thing I see is last command: ctrl+c, but I didn't press it.

I forgot to write last time, the dropdown options arent the only one causing a freeze, trying to pause the inferior process also hangs

from pince.

korcankaraokcu avatar korcankaraokcu commented on September 22, 2024

trying to pause the inferior process also hangs

This might be related to gdb. Try to attach to the process with gdb only. Launch gdb and use the attach command with the pid of the process. My guess is that it blocks the SIGINT, which is used by gdb. We had a similar problem in #157

from pince.

korcankaraokcu avatar korcankaraokcu commented on September 22, 2024

There has been a patch regarding this issue. Can you try that again?

from pince.

Madghostek avatar Madghostek commented on September 22, 2024

I tried again, both on the calculator app like last time, and on a small test program, I'm still getting the issue. Though I ran more tests and I can confirm it's gdb being unable to pause execution with ctrl+c, in fact I can't kill the test program with ctrl+c either, (when replicating the issue, I killed PINCE and attached gdb manually, ctrl+c does nothing, also reattaching PINCE and using find out what reads/writes/accesses this address hangs, even without using a breakpoint beforehand). Unless the target process is restarted nothing can be done.

Luckily I managed to find a different way to cause the freeze that is way more clear, it has something to do with order of taking actions in PINCE gui.

0.Attach PINCE to target and find an address in memory that is updated periodically.
This doesn't hang:
1.open up find out what ... this address window
2. once something appears on the list, double click it, memory viewer appears
3. you can place breakpoints, remove them, make program run into them and continue
4. close memory viewer
5. close the find out what ... this address window

This hangs:
1.open up find out what ... this address window
2. once something appears on the list, double click it, memory viewer appears
3. place a breakpoint and make the program stop at it
4. close the find out what ... this address window while target program is paused
5. remove breakpoint and continue execution
6. open the find out what ... this address window again - hangs

I'm not sure what could be the common cause between the old way I showed and this.

from pince.

korcankaraokcu avatar korcankaraokcu commented on September 22, 2024

I can confirm it's gdb being unable to pause execution with ctrl+c

Yeah, the same problem with #157. Fortunately, there's a working solution in the same issue:

Open up the gdb console and run handle SIGUSR1 nopass. After this, send SIGUSR1 to the target from another terminal with kill -10 <pid>

A secondary solution would be

GDB actually manages to stop the process once when you first attach to it. So, another solution would be to open up the MemoryViewer and set a breakpoint to the first address after attaching. You have to memorize the address or keep a gdb command ready, such as break *<address>

from pince.

damajor avatar damajor commented on September 22, 2024

** Deleted **

Created => #224

from pince.

korcankaraokcu avatar korcankaraokcu commented on September 22, 2024

@damajor Thanks for the bug report but yours might be different than the original post. The issue above was about target not being able to process SIGINT, so it's a gdb related issue. Yours looks more like a pince related issue. If your target is not a console application or can process SIGINT properly, please open a new issue so we don't derail this one. Also, I'd like to see which process you are testing pince on, along with your system specs (distro info etc)

from pince.

korcankaraokcu avatar korcankaraokcu commented on September 22, 2024

You can now choose the interruption signal via settings. Closing since it's a duplicate of #157

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.