Giter VIP home page Giter VIP logo

Comments (6)

cmyr avatar cmyr commented on May 28, 2024

two possibilities jump to mind:

  • your application hasn't finished running: I believe the trace file is only generated when the application terminates. If you want to profile an application as it is running, you'll need to use Instruments.app directly to attach to the relevant process
  • your application finished execution so quickly that no samples were captured: I think this produces a different error message, but this might vary between versions, I'm not sure

If it isn't any of those things then let me know and we can start debugging. :)

from cargo-instruments.

amitassaraf avatar amitassaraf commented on May 28, 2024

@cmyr happens to me too, my application is a Web API, when I kill it after doing 10K requests, I get this error. Could it be that stopping the API doesn't trigger gracefully creating the profiling file?

from cargo-instruments.

XAMPPRocky avatar XAMPPRocky commented on May 28, 2024

I think the fix here is for cargo-instruments to recognise when it's being terminated from the CTRL+C signal, and to finish writing the traces file. Without that you can't really use it for instrumenting long running processes that don't have a regular shutdown like a web server.

from cargo-instruments.

cmyr avatar cmyr commented on May 28, 2024

The problem is that we aren't responsible for writing traces; that's up to xctrace, and so we have no control over what it does in response to SIGINT.

The only thing cargo-instruments can offer here is the --time-limit command, which lets you specify a number of seconds to run the app before termination.

If you want to attach to a running application, profile it, and then stop profiling, you'll need to dig into the xctrace command line utility (or just Instruments.app)

from cargo-instruments.

XAMPPRocky avatar XAMPPRocky commented on May 28, 2024

The problem is that we aren't responsible for writing traces; that's up to xctrace, and so we have no control over what it does in response to SIGINT.

Right but you're the parent process, that's responsible for running both the app and xctrace. You could spawn those into different process groups, and then when cargo-instruments get a SIGINT, you forward that to the app to terminate it, but not to the xctrace process. Letting it finish writing traces before you finish.

from cargo-instruments.

cmyr avatar cmyr commented on May 28, 2024

That's an interesting idea, but we don't actually spawn the target process, we just invoke xctrace with the --launch option, and it executes the target. We could change this in theory and do the launching ourselves before attaching xctrace but that's a fairly significant change that I don't really have the appetite for at the moment.

from cargo-instruments.

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.