libdatadog 10.0.0.1.0-x86_64-linux → 11.0.0.1.0-x86_64-linux

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. checksums.yaml +4 -4
  2. data/lib/libdatadog/version.rb +1 -1
  3. data/vendor/{libdatadog-10.0.0 → libdatadog-11.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE-3rdparty.yml +6302 -1137
  4. data/vendor/{libdatadog-10.0.0 → libdatadog-11.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
  5. data/vendor/libdatadog-11.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/blazesym.h +1229 -0
  6. data/vendor/{libdatadog-10.0.0 → libdatadog-11.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/common.h +32 -17
  7. data/vendor/{libdatadog-10.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-11.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu}/include/datadog/profiling.h +31 -4
  8. data/vendor/libdatadog-11.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  9. data/vendor/{libdatadog-10.0.0 → libdatadog-11.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE-3rdparty.yml +6302 -1137
  10. data/vendor/{libdatadog-10.0.0 → libdatadog-11.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  11. data/vendor/libdatadog-11.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/blazesym.h +1229 -0
  12. data/vendor/{libdatadog-10.0.0 → libdatadog-11.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/common.h +32 -17
  13. data/vendor/{libdatadog-10.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-11.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/profiling.h +31 -4
  14. data/vendor/libdatadog-11.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  15. metadata +23 -23
  16. data/vendor/libdatadog-10.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/blazesym.h +0 -895
  17. data/vendor/libdatadog-10.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  18. data/vendor/libdatadog-10.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/blazesym.h +0 -895
  19. data/vendor/libdatadog-10.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  20. /data/vendor/{libdatadog-10.0.0 → libdatadog-11.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE +0 -0
  21. /data/vendor/{libdatadog-10.0.0 → libdatadog-11.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/NOTICE +0 -0
  22. /data/vendor/{libdatadog-10.0.0 → libdatadog-11.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/telemetry.h +0 -0
  23. /data/vendor/{libdatadog-10.0.0 → libdatadog-11.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -0
  24. /data/vendor/{libdatadog-10.0.0 → libdatadog-11.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE +0 -0
  25. /data/vendor/{libdatadog-10.0.0 → libdatadog-11.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/NOTICE +0 -0
  26. /data/vendor/{libdatadog-10.0.0 → libdatadog-11.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/telemetry.h +0 -0
  27. /data/vendor/{libdatadog-10.0.0 → libdatadog-11.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -0
@@ -143,6 +143,11 @@ typedef enum ddog_prof_DemangleOptions {
143
143
  DDOG_PROF_DEMANGLE_OPTIONS_NAME_ONLY,
144
144
  } ddog_prof_DemangleOptions;
145
145
 
146
+ typedef enum ddog_prof_NormalizedAddressTypes {
147
+ DDOG_PROF_NORMALIZED_ADDRESS_TYPES_NONE = 0,
148
+ DDOG_PROF_NORMALIZED_ADDRESS_TYPES_ELF,
149
+ } ddog_prof_NormalizedAddressTypes;
150
+
146
151
  /**
147
152
  * This enum represents operations a profiler might be engaged in.
148
153
  * The idea is that if a crash consistently occurs while a particular operation
@@ -263,6 +268,7 @@ typedef struct ddog_prof_CrashtrackerConfiguration {
263
268
  struct ddog_prof_Endpoint endpoint;
264
269
  enum ddog_prof_StacktraceCollection resolve_frames;
265
270
  uint64_t timeout_secs;
271
+ bool wait_for_receiver;
266
272
  } ddog_prof_CrashtrackerConfiguration;
267
273
 
268
274
  typedef struct ddog_prof_EnvVar {
@@ -372,10 +378,36 @@ typedef struct ddog_prof_Slice_StackFrameNames {
372
378
  uintptr_t len;
373
379
  } ddog_prof_Slice_StackFrameNames;
374
380
 
381
+ typedef struct ddog_Slice_U8 {
382
+ /**
383
+ * Must be non-null and suitably aligned for the underlying type.
384
+ */
385
+ const uint8_t *ptr;
386
+ /**
387
+ * The number of elements (not bytes) that `.ptr` points to. Must be less
388
+ * than or equal to [isize::MAX].
389
+ */
390
+ uintptr_t len;
391
+ } ddog_Slice_U8;
392
+
393
+ /**
394
+ * Use to represent bytes -- does not need to be valid UTF-8.
395
+ */
396
+ typedef struct ddog_Slice_U8 ddog_ByteSlice;
397
+
398
+ typedef struct ddog_prof_NormalizedAddress {
399
+ uint64_t file_offset;
400
+ ddog_ByteSlice build_id;
401
+ ddog_CharSlice path;
402
+ enum ddog_prof_NormalizedAddressTypes typ;
403
+ } ddog_prof_NormalizedAddress;
404
+
375
405
  typedef struct ddog_prof_StackFrame {
406
+ ddog_CharSlice build_id;
376
407
  uintptr_t ip;
377
408
  uintptr_t module_base_address;
378
409
  struct ddog_prof_Slice_StackFrameNames names;
410
+ struct ddog_prof_NormalizedAddress normalized_ip;
379
411
  uintptr_t sp;
380
412
  uintptr_t symbol_address;
381
413
  } ddog_prof_StackFrame;
@@ -422,23 +454,6 @@ typedef struct ddog_prof_StringWrapperResult {
422
454
  };
423
455
  } ddog_prof_StringWrapperResult;
424
456
 
425
- typedef struct ddog_Slice_U8 {
426
- /**
427
- * Must be non-null and suitably aligned for the underlying type.
428
- */
429
- const uint8_t *ptr;
430
- /**
431
- * The number of elements (not bytes) that `.ptr` points to. Must be less
432
- * than or equal to [isize::MAX].
433
- */
434
- uintptr_t len;
435
- } ddog_Slice_U8;
436
-
437
- /**
438
- * Use to represent bytes -- does not need to be valid UTF-8.
439
- */
440
- typedef struct ddog_Slice_U8 ddog_ByteSlice;
441
-
442
457
  typedef struct ddog_prof_Exporter_File {
443
458
  ddog_CharSlice name;
444
459
  ddog_ByteSlice file;
@@ -74,7 +74,23 @@ struct ddog_prof_CrashtrackerResult ddog_prof_Crashtracker_update_on_fork(struct
74
74
  * No safety concerns
75
75
  */
76
76
  DDOG_CHECK_RETURN
77
- struct ddog_prof_CrashtrackerResult ddog_prof_Crashtracker_receiver_entry_point(void);
77
+ struct ddog_prof_CrashtrackerResult ddog_prof_Crashtracker_receiver_entry_point_stdin(void);
78
+
79
+ /**
80
+ * Receives data from a crash collector via a pipe on `stdin`, formats it into
81
+ * `CrashInfo` json, and emits it to the endpoint/file defined in `config`.
82
+ *
83
+ * At a high-level, this exists because doing anything in a
84
+ * signal handler is dangerous, so we fork a sidecar to do the stuff we aren't
85
+ * allowed to do in the handler.
86
+ *
87
+ * See comments in [profiling/crashtracker/mod.rs] for a full architecture
88
+ * description.
89
+ * # Safety
90
+ * No safety concerns
91
+ */
92
+ DDOG_CHECK_RETURN
93
+ struct ddog_prof_CrashtrackerResult ddog_prof_Crashtracker_receiver_entry_point_unix_socket(ddog_CharSlice socket_path);
78
94
 
79
95
  /**
80
96
  * Initialize the crash-tracking infrastructure.
@@ -89,9 +105,9 @@ struct ddog_prof_CrashtrackerResult ddog_prof_Crashtracker_receiver_entry_point(
89
105
  * unexpected crash-handling behaviour.
90
106
  */
91
107
  DDOG_CHECK_RETURN
92
- struct ddog_prof_CrashtrackerResult ddog_prof_Crashtracker_init(struct ddog_prof_CrashtrackerConfiguration config,
93
- struct ddog_prof_CrashtrackerReceiverConfig receiver_config,
94
- struct ddog_prof_CrashtrackerMetadata metadata);
108
+ struct ddog_prof_CrashtrackerResult ddog_prof_Crashtracker_init_with_receiver(struct ddog_prof_CrashtrackerConfiguration config,
109
+ struct ddog_prof_CrashtrackerReceiverConfig receiver_config,
110
+ struct ddog_prof_CrashtrackerMetadata metadata);
95
111
 
96
112
  /**
97
113
  * Resets all counters to 0.
@@ -139,6 +155,17 @@ DDOG_CHECK_RETURN struct ddog_prof_CrashInfoNewResult ddog_crashinfo_new(void);
139
155
  */
140
156
  void ddog_crashinfo_drop(struct ddog_prof_CrashInfo *crashinfo);
141
157
 
158
+ /**
159
+ * Best effort attempt to normalize all `ip` on the stacktrace.
160
+ * `pid` must be the pid of the currently active process where the ips came from.
161
+ *
162
+ * # Safety
163
+ * `crashinfo` must be a valid pointer to a `CrashInfo` object.
164
+ */
165
+ DDOG_CHECK_RETURN
166
+ struct ddog_prof_CrashtrackerResult ddog_crashinfo_normalize_ips(struct ddog_prof_CrashInfo *crashinfo,
167
+ uint32_t pid);
168
+
142
169
  /**
143
170
  * Adds a "counter" variable, with the given value. Useful for determining if
144
171
  * "interesting" operations were occurring when the crash did.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libdatadog
3
3
  version: !ruby/object:Gem::Version
4
- version: 10.0.0.1.0
4
+ version: 11.0.0.1.0
5
5
  platform: x86_64-linux
6
6
  authors:
7
7
  - Datadog, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-03 00:00:00.000000000 Z
11
+ date: 2024-07-22 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: libdatadog is a Rust-based utility library for Datadog's ddtrace gem.
14
14
  email:
@@ -19,26 +19,26 @@ extra_rdoc_files: []
19
19
  files:
20
20
  - lib/libdatadog.rb
21
21
  - lib/libdatadog/version.rb
22
- - vendor/libdatadog-10.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE
23
- - vendor/libdatadog-10.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE-3rdparty.yml
24
- - vendor/libdatadog-10.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/NOTICE
25
- - vendor/libdatadog-10.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver
26
- - vendor/libdatadog-10.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/blazesym.h
27
- - vendor/libdatadog-10.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/common.h
28
- - vendor/libdatadog-10.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/profiling.h
29
- - vendor/libdatadog-10.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/telemetry.h
30
- - vendor/libdatadog-10.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so
31
- - vendor/libdatadog-10.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc
32
- - vendor/libdatadog-10.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE
33
- - vendor/libdatadog-10.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE-3rdparty.yml
34
- - vendor/libdatadog-10.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/NOTICE
35
- - vendor/libdatadog-10.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver
36
- - vendor/libdatadog-10.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/blazesym.h
37
- - vendor/libdatadog-10.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/common.h
38
- - vendor/libdatadog-10.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/profiling.h
39
- - vendor/libdatadog-10.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/telemetry.h
40
- - vendor/libdatadog-10.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so
41
- - vendor/libdatadog-10.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc
22
+ - vendor/libdatadog-11.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE
23
+ - vendor/libdatadog-11.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE-3rdparty.yml
24
+ - vendor/libdatadog-11.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/NOTICE
25
+ - vendor/libdatadog-11.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver
26
+ - vendor/libdatadog-11.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/blazesym.h
27
+ - vendor/libdatadog-11.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/common.h
28
+ - vendor/libdatadog-11.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/profiling.h
29
+ - vendor/libdatadog-11.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/telemetry.h
30
+ - vendor/libdatadog-11.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so
31
+ - vendor/libdatadog-11.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc
32
+ - vendor/libdatadog-11.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE
33
+ - vendor/libdatadog-11.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE-3rdparty.yml
34
+ - vendor/libdatadog-11.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/NOTICE
35
+ - vendor/libdatadog-11.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver
36
+ - vendor/libdatadog-11.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/blazesym.h
37
+ - vendor/libdatadog-11.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/common.h
38
+ - vendor/libdatadog-11.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/profiling.h
39
+ - vendor/libdatadog-11.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/telemetry.h
40
+ - vendor/libdatadog-11.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so
41
+ - vendor/libdatadog-11.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc
42
42
  homepage: https://docs.datadoghq.com/tracing/
43
43
  licenses:
44
44
  - Apache-2.0
@@ -62,7 +62,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
62
62
  - !ruby/object:Gem::Version
63
63
  version: '0'
64
64
  requirements: []
65
- rubygems_version: 3.3.26
65
+ rubygems_version: 3.3.27
66
66
  signing_key:
67
67
  specification_version: 4
68
68
  summary: Library of common code used by Datadog Continuous Profiler for Ruby