Open
Conversation
* Make process_symbolization available * Remove `pprof` argurment (deduce address format from symbolizer) * Avoid passing a null pointer for symbolizer in unit tests
41caed9 to
17c1fc0
Compare
a830cbb to
cf6b57c
Compare
Crash tracker installs signal handlers to catch crashes. Upon crash, it forks and execs another instance of ddprof passing it `--report-crash` argument as well as crashed thread tid as `--pid` and then waits for this other process to finish before re-raising the signal. Other ddprof process does a ptrace attach on its parent, unwind crashed thread and reports the crash through libdatadog crash tracker.
* Add `--report-crash` option * Install crash tracker upon profiler startup
cf6b57c to
cd0d3df
Compare
Benchmark results for collatzParameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 1 metrics, 0 unstable metrics. See unchanged results
|
Benchmark results for BadBoggleSolver_runParameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 1 metrics, 0 unstable metrics. See unchanged results
|
r1viollet
approved these changes
May 31, 2024
Collaborator
r1viollet
left a comment
There was a problem hiding this comment.
LGTM!
Looking forward to trying this out
r1viollet
reviewed
Mar 3, 2025
| int regno, void *arg) { | ||
| (void)dwfl; | ||
| return memory_read(addr, result, regno, arg); | ||
| auto *us = static_cast<UnwindState *>(arg); |
Collaborator
There was a problem hiding this comment.
why would we not have 2 separate unwinding configurations ?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Add crash tracker and reporter to ddprof.
Crash tracker installs signal handlers to catch crashes in the profiler.
Upon crash, it forks and execs another instance of ddprof passing it
--report-crashargument as well as crashed thread tid as--pidand then waits for this other process to finish before re-raising the signal.Other ddprof process does a ptrace attach on its parent, unwind crashed thread and reports the crash through libdatadog crash tracker.