libdatadog 9.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-9.0.0 → libdatadog-11.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE-3rdparty.yml +17731 -10534
  4. data/vendor/{libdatadog-9.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-9.0.0 → libdatadog-11.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/common.h +37 -18
  7. data/vendor/{libdatadog-9.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-9.0.0 → libdatadog-11.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE-3rdparty.yml +17731 -10534
  10. data/vendor/{libdatadog-9.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-9.0.0 → libdatadog-11.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/common.h +37 -18
  13. data/vendor/{libdatadog-9.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-9.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/blazesym.h +0 -895
  17. data/vendor/libdatadog-9.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  18. data/vendor/libdatadog-9.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/blazesym.h +0 -895
  19. data/vendor/libdatadog-9.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  20. /data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE +0 -0
  21. /data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/NOTICE +0 -0
  22. /data/vendor/{libdatadog-9.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-9.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-9.0.0 → libdatadog-11.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE +0 -0
  25. /data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/NOTICE +0 -0
  26. /data/vendor/{libdatadog-9.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-9.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
@@ -178,7 +183,8 @@ typedef enum ddog_prof_StacktraceCollection {
178
183
  */
179
184
  DDOG_PROF_STACKTRACE_COLLECTION_DISABLED,
180
185
  DDOG_PROF_STACKTRACE_COLLECTION_WITHOUT_SYMBOLS,
181
- DDOG_PROF_STACKTRACE_COLLECTION_ENABLED,
186
+ DDOG_PROF_STACKTRACE_COLLECTION_ENABLED_WITH_INPROCESS_SYMBOLS,
187
+ DDOG_PROF_STACKTRACE_COLLECTION_ENABLED_WITH_SYMBOLS_IN_RECEIVER,
182
188
  } ddog_prof_StacktraceCollection;
183
189
 
184
190
  typedef struct ddog_CancellationToken ddog_CancellationToken;
@@ -255,10 +261,14 @@ typedef struct ddog_prof_CrashtrackerConfiguration {
255
261
  bool create_alt_stack;
256
262
  /**
257
263
  * The endpoint to send the crash report to (can be a file://)
264
+ *
265
+ * If ProfilingEndpoint is left to a zero value (enum value for Agent + empty charslice),
266
+ * the crashtracker will infer the agent host from env variables.
258
267
  */
259
268
  struct ddog_prof_Endpoint endpoint;
260
269
  enum ddog_prof_StacktraceCollection resolve_frames;
261
270
  uint64_t timeout_secs;
271
+ bool wait_for_receiver;
262
272
  } ddog_prof_CrashtrackerConfiguration;
263
273
 
264
274
  typedef struct ddog_prof_EnvVar {
@@ -368,10 +378,36 @@ typedef struct ddog_prof_Slice_StackFrameNames {
368
378
  uintptr_t len;
369
379
  } ddog_prof_Slice_StackFrameNames;
370
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
+
371
405
  typedef struct ddog_prof_StackFrame {
406
+ ddog_CharSlice build_id;
372
407
  uintptr_t ip;
373
408
  uintptr_t module_base_address;
374
409
  struct ddog_prof_Slice_StackFrameNames names;
410
+ struct ddog_prof_NormalizedAddress normalized_ip;
375
411
  uintptr_t sp;
376
412
  uintptr_t symbol_address;
377
413
  } ddog_prof_StackFrame;
@@ -418,23 +454,6 @@ typedef struct ddog_prof_StringWrapperResult {
418
454
  };
419
455
  } ddog_prof_StringWrapperResult;
420
456
 
421
- typedef struct ddog_Slice_U8 {
422
- /**
423
- * Must be non-null and suitably aligned for the underlying type.
424
- */
425
- const uint8_t *ptr;
426
- /**
427
- * The number of elements (not bytes) that `.ptr` points to. Must be less
428
- * than or equal to [isize::MAX].
429
- */
430
- uintptr_t len;
431
- } ddog_Slice_U8;
432
-
433
- /**
434
- * Use to represent bytes -- does not need to be valid UTF-8.
435
- */
436
- typedef struct ddog_Slice_U8 ddog_ByteSlice;
437
-
438
457
  typedef struct ddog_prof_Exporter_File {
439
458
  ddog_CharSlice name;
440
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.