Add crash tracking to profiler#411
Draft
nsavoire wants to merge 10 commits into
Draft
Conversation
nsavoire
marked this pull request as ready for review
May 29, 2024 13:39
* Make process_symbolization available * Remove `pprof` argurment (deduce address format from symbolizer) * Avoid passing a null pointer for symbolizer in unit tests
nsavoire
force-pushed
the
nsavoire/crash_reporter
branch
from
May 29, 2024 14:09
41caed9 to
17c1fc0
Compare
nsavoire
force-pushed
the
nsavoire/crash_reporter
branch
2 times, most recently
from
May 29, 2024 19:33
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
nsavoire
force-pushed
the
nsavoire/crash_reporter
branch
from
May 29, 2024 19:38
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
r1viollet
left a comment
Collaborator
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 ?
Collaborator
|
@nsavoire moving this to draft |
r1viollet
marked this pull request as draft
March 20, 2026 10:42
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.