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

Sign up to get free protection for your applications and to get access to all the features.
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