Skip to content

[DI] Support multiple probes in the same location#5535

Merged
watson merged 3 commits intomasterfrom
watson/DEBUG-2918/multi-probes
Apr 8, 2025
Merged

[DI] Support multiple probes in the same location#5535
watson merged 3 commits intomasterfrom
watson/DEBUG-2918/multi-probes

Conversation

@watson
Copy link
Copy Markdown
Collaborator

@watson watson commented Apr 4, 2025

What does this PR do?

Allow the user to set multiple probes on the same location (file/line/column).

The Chrome DevTools Protocol API that we use (Debugger.setBreakpoint) does not allow more than one breakpoint per location. To get around this, we keep a reference to which probes should be at each physical breakpoint and "execute" those when the shared breakpoint is hit.

Motivation

Align on feature parity with the other tracers

Plugin Checklist

Additional Notes

@watson watson self-assigned this Apr 4, 2025
Copy link
Copy Markdown
Collaborator Author

watson commented Apr 4, 2025

This stack of pull requests is managed by Graphite. Learn more about stacking.

@watson watson added semver-minor debugger Dynamic Instrumentation & Live Debugger labels Apr 4, 2025
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 4, 2025

Overall package size

Self size: 9.27 MB
Deduped: 101.67 MB
No deduping: 102.19 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.5.0 | 29.83 MB | 29.83 MB | | @datadog/native-appsec | 8.5.1 | 19.26 MB | 19.27 MB | | @datadog/native-iast-taint-tracking | 3.3.0 | 13.77 MB | 13.78 MB | | @datadog/pprof | 5.7.0 | 9.89 MB | 10.26 MB | | @opentelemetry/core | 1.30.1 | 908.66 kB | 7.16 MB | | protobufjs | 7.4.0 | 2.77 MB | 5.42 MB | | @datadog/wasm-js-rewriter | 3.1.0 | 2.37 MB | 2.52 MB | | @datadog/native-metrics | 3.1.0 | 1.06 MB | 1.46 MB | | @opentelemetry/api | 1.8.0 | 1.21 MB | 1.21 MB | | import-in-the-middle | 1.13.1 | 117.64 kB | 839.26 kB | | source-map | 0.7.4 | 226 kB | 226 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | lru-cache | 7.18.3 | 133.92 kB | 133.92 kB | | pprof-format | 2.1.0 | 111.69 kB | 111.69 kB | | @datadog/sketches-js | 2.1.1 | 109.9 kB | 109.9 kB | | lodash.sortby | 4.7.0 | 75.76 kB | 75.76 kB | | ignore | 5.3.2 | 53.63 kB | 53.63 kB | | istanbul-lib-coverage | 3.2.0 | 29.34 kB | 29.34 kB | | rfdc | 1.4.1 | 27.15 kB | 27.15 kB | | @isaacs/ttlcache | 1.4.1 | 25.2 kB | 25.2 kB | | tlhunter-sorted-set | 0.1.0 | 24.94 kB | 24.94 kB | | dc-polyfill | 0.1.6 | 24.56 kB | 24.56 kB | | shell-quote | 1.8.2 | 23.54 kB | 23.54 kB | | limiter | 1.1.5 | 23.17 kB | 23.17 kB | | retry | 0.13.1 | 18.85 kB | 18.85 kB | | semifies | 1.0.0 | 15.84 kB | 15.84 kB | | jest-docblock | 29.7.0 | 8.99 kB | 12.76 kB | | crypto-randomuuid | 1.0.0 | 11.18 kB | 11.18 kB | | ttl-set | 1.0.0 | 4.61 kB | 9.69 kB | | path-to-regexp | 0.1.12 | 6.6 kB | 6.6 kB | | koalas | 1.0.2 | 6.47 kB | 6.47 kB | | module-details-from-path | 1.0.3 | 4.47 kB | 4.47 kB |

🤖 This report was automatically generated by heaviest-objects-in-the-universe

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 4, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 79.26%. Comparing base (9ec7ef9) to head (4d66ab4).
Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #5535      +/-   ##
==========================================
- Coverage   79.41%   79.26%   -0.15%     
==========================================
  Files         516      512       -4     
  Lines       23366    23195     -171     
==========================================
- Hits        18556    18386     -170     
+ Misses       4810     4809       -1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@pr-commenter
Copy link
Copy Markdown

pr-commenter Bot commented Apr 4, 2025

Benchmarks

Benchmark execution time: 2025-04-08 11:41:23

Comparing candidate commit 4d66ab4 in PR branch watson/DEBUG-2918/multi-probes with baseline commit 9ec7ef9 in branch master.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 945 metrics, 18 unstable metrics.

@datadog-datadog-prod-us1
Copy link
Copy Markdown

datadog-datadog-prod-us1 Bot commented Apr 4, 2025

Datadog Report

Branch report: watson/DEBUG-2918/multi-probes
Commit report: 1041146
Test service: dd-trace-js-integration-tests

✅ 0 Failed, 930 Passed, 0 Skipped, 10m 3.58s Total Time

@watson watson force-pushed the watson/DEBUG-2918/multi-probes branch 2 times, most recently from da238d8 to 862d5ac Compare April 4, 2025 14:41
@watson watson marked this pull request as ready for review April 4, 2025 14:57
@watson watson requested review from a team as code owners April 4, 2025 14:57
@watson watson force-pushed the watson/DEBUG-2918/multi-probes branch from 862d5ac to 91ff5a2 Compare April 7, 2025 11:24
Comment thread packages/dd-trace/src/debugger/devtools_client/breakpoints.js Outdated
@watson watson force-pushed the watson/DEBUG-2918/multi-probes branch from d62aec9 to 2b9afe2 Compare April 8, 2025 08:47
@watson watson mentioned this pull request Apr 8, 2025
module.exports = () => async function lock () {
if (lock.p) await lock.p
let resolve
lock.p = new Promise((_resolve) => { resolve = _resolve }).then(() => { lock.p = null })
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So sad we can't use Promise.withResolvers yet.

Comment thread packages/dd-trace/src/debugger/devtools_client/index.js Outdated
Comment thread packages/dd-trace/src/debugger/devtools_client/index.js Outdated
Co-authored-by: Attila Szegedi <szegedi@users.noreply.github.com>
@watson watson requested review from szegedi and tylfin April 8, 2025 11:35
@watson watson merged commit c2b55f4 into master Apr 8, 2025
427 checks passed
@watson watson deleted the watson/DEBUG-2918/multi-probes branch April 8, 2025 12:12
@wconti27 wconti27 mentioned this pull request Apr 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

debugger Dynamic Instrumentation & Live Debugger semver-minor

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants