[package] name = "tracers" version = "0.1.0" authors = ["Adam Nelson "] edition = "2018" license = "MIT OR Apache-2.0" autobenches = false description = "Generates very low overhead native trace points using stable Rust" repository = "https://github.com/anelson/tracers" readme = "../README.md" keywords = ["tracers", "systemtap", "ltt-ng", "ebpf", "tracing"] categories = ["os", "development-tools::profiling"] # This is a hack. Or maybe a workaround for a bug. # # It seems that Cargo does not pass variables to dependent crates using the DEP_(PKGNAME)_(VARNAME) # env vars unless it thinks the crate is wrapping a native library. This package is definitely not # doing that, but setting this in the manifest ensures that the downstream dependencies' build.rs # can query the variables produced by this `build.rs` to detect which prob impl was used at compile time # # This will be unnecessary once https://github.com/rust-lang/cargo/issues/3544 is implemented links = "tracers" [badges] maintenance = { status = "experimental" } cirrus-ci = { repository = "github/anelson/tracers", branch = "master" } azure-devops = { project = "anelson-open-source/tracers", pipeline = "anelson.tracers", build="4" } [features] # By default, tracing is enabled and set to an automatically selected static implementation default = ["tracing"] tracing = ["static-tracing"] # To enable dynamic tracing requires it be explicitly activated. Note this is mutually exclusive with # enable-static-tracing dynamic-tracing = ["once_cell", "tracers-core/dynamic", "tracers-dyn-stap/enabled", "tracers-dyn-noop"] # Static tracing is built in to the generators, it doesn't have any additional dependent crates static-tracing = ["tracers-core/default"] force-dyn-stap = ["dynamic-tracing", "tracers-dyn-stap/required"] force-dyn-noop = ["dynamic-tracing", "tracers-dyn-noop"] force-static-noop = ["static-tracing"] force-static-stap = ["static-tracing"] force-static-lttng = ["static-tracing"] # An optional feature will build binaries which are used to interact with the probing framework. These are only useful # as part of our CI tests, or when troubleshooting unexpected behavior with the probes. If you are using this crate as a dependency, # you should not activate this feature as it will add `tracers-macros` to the runtime-dependencies of `tracers` binaries = ["nom", "tracers-macros"] [[bin]] name = "testfire" path = "src/bin/testfire.rs" required-features = [ "binaries" ] [[bin]] name = "profile_target" path = "src/bin/profile_target.rs" required-features = [ "binaries" ] [[bench]] name = "probe_firing" harness = false [dependencies] once_cell = { version = "1.2.0", optional = true } tracers-core = { path = "../tracers-core", version = "0.1.0", optional = true } tracers-dyn-noop = { path = "../tracers-dyn-noop", version = "0.1.0", optional = true } tracers-dyn-stap = { path = "../tracers-dyn-stap", version = "0.1.0", optional = true } nom = { version = "5.0.1", optional = true } tracers-macros = { path = "../tracers-macros", version = "0.1.0", optional = true } [build-dependencies] tracers-build = { path = "../tracers-build", version = "0.1.0" } failure = "0.1.6" [dev-dependencies] # Our integration tests and examples assume the tracers-macros are available tracers-macros = { path = "../tracers-macros", version = "0.1.0" } criterion = "0.3.0" failure = "0.1.6" nix = "0.15.0"