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.