libdatadog 22.0.1.1.0-x86_64-linux → 24.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.
- checksums.yaml +4 -4
- data/lib/libdatadog/version.rb +1 -1
- data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE-3rdparty.yml +2231 -16
- data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/common.h +55 -7
- data/vendor/{libdatadog-22.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-24.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu}/include/datadog/crashtracker.h +88 -16
- data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
- data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
- data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE-3rdparty.yml +2231 -16
- data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/common.h +55 -7
- data/vendor/{libdatadog-22.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-24.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/crashtracker.h +88 -16
- data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
- data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
- metadata +31 -31
- /data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE +0 -0
- /data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/NOTICE +0 -0
- /data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
- /data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/blazesym.h +0 -0
- /data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/data-pipeline.h +0 -0
- /data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/ddsketch.h +0 -0
- /data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/library-config.h +0 -0
- /data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/log.h +0 -0
- /data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/profiling.h +0 -0
- /data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/telemetry.h +0 -0
- /data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE +0 -0
- /data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/NOTICE +0 -0
- /data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
- /data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/blazesym.h +0 -0
- /data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/data-pipeline.h +0 -0
- /data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/ddsketch.h +0 -0
- /data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/library-config.h +0 -0
- /data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/log.h +0 -0
- /data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/profiling.h +0 -0
- /data/vendor/{libdatadog-22.0.1 → libdatadog-24.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/telemetry.h +0 -0
|
@@ -263,12 +263,6 @@ typedef struct ddog_prof_Exporter ddog_prof_Exporter;
|
|
|
263
263
|
|
|
264
264
|
typedef struct ddog_prof_Exporter_Request ddog_prof_Exporter_Request;
|
|
265
265
|
|
|
266
|
-
/**
|
|
267
|
-
* A tag is a combination of a wire_type, stored in the least significant
|
|
268
|
-
* three bits, and the field number that is defined in the .proto file.
|
|
269
|
-
*/
|
|
270
|
-
typedef struct ddog_Tag ddog_Tag;
|
|
271
|
-
|
|
272
266
|
typedef struct ddog_Slice_U8 {
|
|
273
267
|
/**
|
|
274
268
|
* Should be non-null and suitably aligned for the underlying type. It is
|
|
@@ -457,6 +451,12 @@ typedef struct ddog_CancellationToken {
|
|
|
457
451
|
typedef struct ddog_prof_Profile {
|
|
458
452
|
struct ddog_prof_Profile *inner;
|
|
459
453
|
} ddog_prof_Profile;
|
|
454
|
+
/**
|
|
455
|
+
* When testing on some profiles that can't be shared publicly,
|
|
456
|
+
* level 1 provided better compressed files while taking less or equal
|
|
457
|
+
* time compared to lz4.
|
|
458
|
+
*/
|
|
459
|
+
#define ddog_prof_Profile_COMPRESSION_LEVEL 1
|
|
460
460
|
|
|
461
461
|
/**
|
|
462
462
|
* Returned by [ddog_prof_Profile_new].
|
|
@@ -1565,6 +1565,14 @@ typedef enum ddog_crasht_BuildIdType {
|
|
|
1565
1565
|
DDOG_CRASHT_BUILD_ID_TYPE_SHA1,
|
|
1566
1566
|
} ddog_crasht_BuildIdType;
|
|
1567
1567
|
|
|
1568
|
+
/**
|
|
1569
|
+
* Result type for runtime callback registration
|
|
1570
|
+
*/
|
|
1571
|
+
typedef enum ddog_crasht_CallbackResult {
|
|
1572
|
+
DDOG_CRASHT_CALLBACK_RESULT_OK,
|
|
1573
|
+
DDOG_CRASHT_CALLBACK_RESULT_ERROR,
|
|
1574
|
+
} ddog_crasht_CallbackResult;
|
|
1575
|
+
|
|
1568
1576
|
typedef enum ddog_crasht_DemangleOptions {
|
|
1569
1577
|
DDOG_CRASHT_DEMANGLE_OPTIONS_COMPLETE,
|
|
1570
1578
|
DDOG_CRASHT_DEMANGLE_OPTIONS_NAME_ONLY,
|
|
@@ -1758,7 +1766,7 @@ typedef struct ddog_crasht_Config {
|
|
|
1758
1766
|
/**
|
|
1759
1767
|
* Timeout in milliseconds before the signal handler starts tearing things down to return.
|
|
1760
1768
|
* If 0, uses the default timeout as specified in
|
|
1761
|
-
* `
|
|
1769
|
+
* `libdd_crashtracker::shared::constants::DD_CRASHTRACK_DEFAULT_TIMEOUT`. Otherwise, uses
|
|
1762
1770
|
* the specified timeout value.
|
|
1763
1771
|
* This is given as a uint32_t, but the actual timeout needs to fit inside of an i32 (max
|
|
1764
1772
|
* 2^31-1). This is a limitation of the various interfaces used to guarantee the timeout.
|
|
@@ -1976,6 +1984,46 @@ typedef struct ddog_crasht_StackTrace_NewResult {
|
|
|
1976
1984
|
};
|
|
1977
1985
|
} ddog_crasht_StackTrace_NewResult;
|
|
1978
1986
|
|
|
1987
|
+
typedef struct ddog_crasht_RuntimeStackFrame {
|
|
1988
|
+
/**
|
|
1989
|
+
* Line number in source file (0 if unknown)
|
|
1990
|
+
*/
|
|
1991
|
+
uint32_t line;
|
|
1992
|
+
/**
|
|
1993
|
+
* Column number in source file (0 if unknown)
|
|
1994
|
+
*/
|
|
1995
|
+
uint32_t column;
|
|
1996
|
+
/**
|
|
1997
|
+
* Function name (fully qualified if possible)
|
|
1998
|
+
*/
|
|
1999
|
+
ddog_CharSlice function;
|
|
2000
|
+
/**
|
|
2001
|
+
* Source file name
|
|
2002
|
+
*/
|
|
2003
|
+
ddog_CharSlice file;
|
|
2004
|
+
/**
|
|
2005
|
+
* Type name (class/module/namespace/etc.)
|
|
2006
|
+
*/
|
|
2007
|
+
ddog_CharSlice type_name;
|
|
2008
|
+
} ddog_crasht_RuntimeStackFrame;
|
|
2009
|
+
|
|
2010
|
+
typedef void (*ddog_crasht_RuntimeStackFrameCallback)(void (*emit_frame)(const struct ddog_crasht_RuntimeStackFrame*));
|
|
2011
|
+
|
|
2012
|
+
/**
|
|
2013
|
+
* Function signature for runtime stacktrace string collection callbacks
|
|
2014
|
+
*
|
|
2015
|
+
* This callback is invoked during crash handling in a signal context, so it must be signal-safe:
|
|
2016
|
+
*
|
|
2017
|
+
* # Parameters
|
|
2018
|
+
* - `emit_stacktrace_string`: Function to call for complete stacktrace string (takes C string)
|
|
2019
|
+
*
|
|
2020
|
+
* # Safety
|
|
2021
|
+
* The callback function is marked unsafe because:
|
|
2022
|
+
* - It receives function pointers that take raw pointers as parameters
|
|
2023
|
+
* - All C strings passed must be null-terminated and remain valid for the call duration
|
|
2024
|
+
*/
|
|
2025
|
+
typedef void (*ddog_crasht_RuntimeStacktraceStringCallback)(void (*emit_stacktrace_string)(const char*));
|
|
2026
|
+
|
|
1979
2027
|
#ifdef __cplusplus
|
|
1980
2028
|
extern "C" {
|
|
1981
2029
|
#endif // __cplusplus
|
|
@@ -410,6 +410,16 @@ DDOG_CHECK_RETURN
|
|
|
410
410
|
struct ddog_VoidResult ddog_crasht_CrashInfo_resolve_names(struct ddog_crasht_Handle_CrashInfo *crash_info,
|
|
411
411
|
uint32_t pid);
|
|
412
412
|
|
|
413
|
+
/**
|
|
414
|
+
* # Safety
|
|
415
|
+
* The `crash_info` can be null, but if non-null it must point to a Builder made by this module,
|
|
416
|
+
* which has not previously been dropped.
|
|
417
|
+
* This function will:
|
|
418
|
+
*/
|
|
419
|
+
DDOG_CHECK_RETURN
|
|
420
|
+
struct ddog_VoidResult ddog_crasht_CrashInfo_enrich_callstacks(struct ddog_crasht_Handle_CrashInfo *crash_info,
|
|
421
|
+
uint32_t pid);
|
|
422
|
+
|
|
413
423
|
/**
|
|
414
424
|
* # Safety
|
|
415
425
|
* The `crash_info` can be null, but if non-null it must point to a Builder made by this module,
|
|
@@ -633,27 +643,19 @@ struct ddog_VoidResult ddog_crasht_CrashInfoBuilder_with_trace_id(struct ddog_cr
|
|
|
633
643
|
* The CharSlice must be valid.
|
|
634
644
|
*/
|
|
635
645
|
DDOG_CHECK_RETURN
|
|
636
|
-
struct ddog_VoidResult
|
|
637
|
-
|
|
646
|
+
struct ddog_VoidResult ddog_crasht_CrashInfoBuilder_with_message(struct ddog_crasht_Handle_CrashInfoBuilder *builder,
|
|
647
|
+
ddog_CharSlice message);
|
|
638
648
|
|
|
639
649
|
/**
|
|
640
650
|
* # Safety
|
|
641
651
|
* The `builder` can be null, but if non-null it must point to a Builder made by this module,
|
|
642
652
|
* which has not previously been dropped.
|
|
643
|
-
*
|
|
644
|
-
|
|
645
|
-
DDOG_CHECK_RETURN
|
|
646
|
-
struct ddog_VoidResult ddog_crasht_CrashInfoBuilder_with_uuid_random(struct ddog_crasht_Handle_CrashInfoBuilder *builder);
|
|
647
|
-
|
|
648
|
-
/**
|
|
649
|
-
* # Safety
|
|
650
|
-
* The `crash_info` can be null, but if non-null it must point to a Builder made by this module,
|
|
651
|
-
* which has not previously been dropped.
|
|
652
|
-
* The CharSlice must be valid.
|
|
653
|
+
* All arguments must be valid.
|
|
654
|
+
* This method requires that the builder has a UUID, siginfo, and metadata set
|
|
653
655
|
*/
|
|
654
656
|
DDOG_CHECK_RETURN
|
|
655
|
-
struct ddog_VoidResult
|
|
656
|
-
|
|
657
|
+
struct ddog_VoidResult ddog_crasht_CrashInfoBuilder_upload_ping_to_endpoint(struct ddog_crasht_Handle_CrashInfoBuilder *builder,
|
|
658
|
+
const struct ddog_Endpoint *endpoint);
|
|
657
659
|
|
|
658
660
|
/**
|
|
659
661
|
* Create a new StackFrame, and returns an opaque reference to it.
|
|
@@ -852,7 +854,7 @@ struct ddog_StringWrapperResult ddog_crasht_demangle(ddog_CharSlice name,
|
|
|
852
854
|
* signal handler is dangerous, so we fork a sidecar to do the stuff we aren't
|
|
853
855
|
* allowed to do in the handler.
|
|
854
856
|
*
|
|
855
|
-
* See comments in [
|
|
857
|
+
* See comments in [libdd-crashtracker/lib.rs] for a full architecture description.
|
|
856
858
|
* # Safety
|
|
857
859
|
* No safety concerns
|
|
858
860
|
*/
|
|
@@ -866,7 +868,7 @@ DDOG_CHECK_RETURN struct ddog_VoidResult ddog_crasht_receiver_entry_point_stdin(
|
|
|
866
868
|
* signal handler is dangerous, so we fork a sidecar to do the stuff we aren't
|
|
867
869
|
* allowed to do in the handler.
|
|
868
870
|
*
|
|
869
|
-
* See comments in [
|
|
871
|
+
* See comments in [libdd-crashtracker/lib.rs] for a full architecture
|
|
870
872
|
* description.
|
|
871
873
|
* # Safety
|
|
872
874
|
* No safety concerns
|
|
@@ -874,6 +876,76 @@ DDOG_CHECK_RETURN struct ddog_VoidResult ddog_crasht_receiver_entry_point_stdin(
|
|
|
874
876
|
DDOG_CHECK_RETURN
|
|
875
877
|
struct ddog_VoidResult ddog_crasht_receiver_entry_point_unix_socket(ddog_CharSlice socket_path);
|
|
876
878
|
|
|
879
|
+
/**
|
|
880
|
+
* Register a runtime stack collection callback
|
|
881
|
+
*
|
|
882
|
+
* # Arguments
|
|
883
|
+
* - `callback`: The callback function to invoke during crashes
|
|
884
|
+
*
|
|
885
|
+
* # Returns
|
|
886
|
+
* - `CallbackResult::Ok` if registration succeeds
|
|
887
|
+
* - `CallbackResult::Error` if registration fails
|
|
888
|
+
*
|
|
889
|
+
* # Safety
|
|
890
|
+
* - The callback must be signal-safe
|
|
891
|
+
* - Only one callback can be registered at a time
|
|
892
|
+
* - The callback must be registered once on CrashTracker initialization, before any crash occurs
|
|
893
|
+
*
|
|
894
|
+
* # Example Usage from C
|
|
895
|
+
* ```c
|
|
896
|
+
* static void my_runtime_callback(
|
|
897
|
+
* void (*emit_frame)(const ddog_RuntimeStackFrameFFI*),
|
|
898
|
+
* ) {
|
|
899
|
+
* // Collect runtime frames and call emit_frame for each one
|
|
900
|
+
* const char* function_name = "my_function";
|
|
901
|
+
* const char* file_name = "script.rb";
|
|
902
|
+
* ddog_CharSlice type_name = DDOG_CHARSLICE_FROM_CSTR("MyModule.MyClass");
|
|
903
|
+
* ddog_crasht_RuntimeStackFrameFFI frame = {
|
|
904
|
+
* .type_name = type_name,
|
|
905
|
+
* .function = DDOG_CHARSLICE_FROM_CSTR(function_name),
|
|
906
|
+
* .file = DDOG_CHARSLICE_FROM_CSTR(file_name),
|
|
907
|
+
* .line = 42,
|
|
908
|
+
* .column = 10
|
|
909
|
+
* };
|
|
910
|
+
* emit_frame(&frame);
|
|
911
|
+
* }
|
|
912
|
+
*/
|
|
913
|
+
enum ddog_crasht_CallbackResult ddog_crasht_register_runtime_frame_callback(ddog_crasht_RuntimeStackFrameCallback callback);
|
|
914
|
+
|
|
915
|
+
/**
|
|
916
|
+
* Register a runtime stacktrace string collection callback
|
|
917
|
+
*
|
|
918
|
+
* # Arguments
|
|
919
|
+
* - `callback`: The callback function to invoke during crashes
|
|
920
|
+
*
|
|
921
|
+
* # Returns
|
|
922
|
+
* - `CallbackResult::Ok` if registration succeeds (replaces any existing callback)
|
|
923
|
+
* - `CallbackResult::Error` if registration fails
|
|
924
|
+
*
|
|
925
|
+
* # Safety
|
|
926
|
+
* - The callback must be signal-safe
|
|
927
|
+
* - Only one callback can be registered at a time (this replaces any existing one)
|
|
928
|
+
*/
|
|
929
|
+
enum ddog_crasht_CallbackResult ddog_crasht_register_runtime_stacktrace_string_callback(ddog_crasht_RuntimeStacktraceStringCallback callback);
|
|
930
|
+
|
|
931
|
+
/**
|
|
932
|
+
* Returns true if a callback is registered, false otherwise
|
|
933
|
+
*
|
|
934
|
+
* # Safety
|
|
935
|
+
* This function is safe to call at any time
|
|
936
|
+
*/
|
|
937
|
+
bool ddog_crasht_is_runtime_callback_registered(void);
|
|
938
|
+
|
|
939
|
+
/**
|
|
940
|
+
* Get the callback type from the currently registered callback context
|
|
941
|
+
*
|
|
942
|
+
* # Safety
|
|
943
|
+
* - The returned pointer is valid only while the callback remains registered
|
|
944
|
+
* - The caller should not free the returned pointer
|
|
945
|
+
* - The returned string should be copied if it needs to persist beyond callback lifetime
|
|
946
|
+
*/
|
|
947
|
+
const char *ddog_crasht_get_registered_callback_type(void);
|
|
948
|
+
|
|
877
949
|
#ifdef __cplusplus
|
|
878
950
|
} // extern "C"
|
|
879
951
|
#endif // __cplusplus
|
|
Binary file
|
|
@@ -8,7 +8,7 @@ includedir=${prefix}/include
|
|
|
8
8
|
|
|
9
9
|
Name: datadog_profiling
|
|
10
10
|
Description: Contains common code used to implement Datadog's Continuous Profilers. (Dynamic linking variant, sets rpath)
|
|
11
|
-
Version:
|
|
11
|
+
Version: 24.0.0
|
|
12
12
|
Requires:
|
|
13
13
|
Libs: -L${libdir} -ldatadog_profiling -Wl,-rpath,${libdir}
|
|
14
14
|
Libs.private:
|