Skip to content

Commit

Permalink
2210: Tracing printouts for FFI calls
Browse files Browse the repository at this point in the history
Added the `uniffi:ffi-trace` feature.  If enabled, UniFFI will printout
tracing-level logs for FFI calls.  I hooked up the futures code to this,
in the future we could also log more stuff.  Lowering/lifting/cloning
arcs is the first example that comes to mind.

To see tracing, use the `--features=ffi-trace` when running a tests, for example:
  - `cd fixtures/futures/src`
  - `cargo test --features=ffi-trace`

Here's an example of the tracing printouts when running tests from the
futures fixtures:

```
rust_future_new: Handle(94402427620656)
rust_future_poll: Handle(94402427620656)
RustFuture::wake called
rust_future_poll: Handle(94402427620656)
RustFuture::poll is ready (canceled: false)
rust_future_complete: Handle(94402427620656)
rust_future_free: Handle(94402427620656)
```
  • Loading branch information
bendk committed Aug 9, 2024
1 parent 7ff7584 commit fdf1919
Show file tree
Hide file tree
Showing 63 changed files with 201 additions and 5 deletions.
3 changes: 3 additions & 0 deletions examples/app/uniffi-bindgen-cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,6 @@ path = "uniffi-bindgen.rs"

[dependencies]
uniffi = { workspace = true, features = ["cli"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions examples/arithmetic-procmacro/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,6 @@ thiserror = "1.0"

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions examples/arithmetic/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,6 @@ uniffi = { workspace = true, features = ["build", "scaffolding-ffi-buffer-fns"]

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions examples/async-api-client/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions examples/callbacks/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions examples/custom-types/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions examples/futures/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions examples/geometry/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions examples/rondpoint/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions examples/sprites/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions examples/todolist/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions examples/traits/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,6 @@ uniffi = { workspace = true, features = ["build"] }
[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }


[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/benchmarks/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,6 @@ uniffi_bindgen = {path = "../../uniffi_bindgen", features = ["bindgen-tests"]}
[[bench]]
name = "benchmarks"
harness = false

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/callbacks/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/coverall/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,6 @@ uniffi = { workspace = true, features = ["build"] }
[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }
uniffi_meta = { path = "../../uniffi_meta/" }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/docstring-proc-macro/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,6 @@ glob = "0.3"
uniffi = { path = "../../uniffi", features = ["bindgen-tests"] }
uniffi_bindgen = { path = "../../uniffi_bindgen" }
uniffi_testing = { path = "../../uniffi_testing" }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/docstring/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,6 @@ glob = "0.3"
uniffi = { path = "../../uniffi", features = ["bindgen-tests"] }
uniffi_bindgen = { path = "../../uniffi_bindgen" }
uniffi_testing = { path = "../../uniffi_testing" }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/enum-types/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
2 changes: 2 additions & 0 deletions fixtures/error-types/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,5 @@ uniffi = {path = "../../uniffi", features = ["build"] }
[dev-dependencies]
uniffi = {path = "../../uniffi", features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/ext-types/custom-types/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/ext-types/http-headermap/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/ext-types/lib/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/ext-types/proc-macro-lib/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/ext-types/sub-lib/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/ext-types/uniffi-one/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ uniffi = { workspace = true }

[build-dependencies]
uniffi = { workspace = true, features = ["build"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/futures/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,6 @@ uniffi = { workspace = true, features = ["build", "scaffolding-ffi-buffer-fns"]

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/keywords/kotlin/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/keywords/rust/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/keywords/swift/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/large-enum/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/large-error/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/metadata/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,6 @@ thiserror = "1.0"
uniffi = { workspace = true }
uniffi_meta = { path = "../../uniffi_meta" }
uniffi_core = { path = "../../uniffi_core" }

[features]
ffi-trace = ["uniffi/ffi-trace"]
1 change: 1 addition & 0 deletions fixtures/proc-macro-no-implicit-prelude/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ crate-type = ["lib", "cdylib"]

[features]
default = ["myfeature"]
ffi-trace = ["uniffi/ffi-trace"]
myfeature = []

[dependencies]
Expand Down
1 change: 1 addition & 0 deletions fixtures/proc-macro/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ crate-type = ["lib", "cdylib"]

[features]
default = ["myfeature"]
ffi-trace = ["uniffi/ffi-trace"]
myfeature = []

[dependencies]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/regressions/enum-without-i32-helpers/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/regressions/fully-qualified-types/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,6 @@ uniffi = { workspace = true }

[build-dependencies]
uniffi = { workspace = true, features = ["build"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/regressions/logging-callback-interface/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/regressions/missing-newline/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/regressions/nested-module-import/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,6 @@ uniffi = { workspace = true }

[build-dependencies]
uniffi = { workspace = true, features = ["build"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/regressions/swift-callbacks-omit-labels/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/regressions/swift-dictionary-nesting/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/regressions/unary-result-alias/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/regressions/wrong-lower-check/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/simple-fns/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/simple-iface/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/struct-default-values/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/swift-bridging-header-compile/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,6 @@ uniffi = { workspace = true, features = ["build"] }
uniffi = { workspace = true, features = ["bindgen-tests", "cli"] }
uniffi_testing = { path = "../../uniffi_testing" }
anyhow = "1"

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/swift-omit-labels/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
2 changes: 2 additions & 0 deletions fixtures/trait-methods/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,5 @@ uniffi = { workspace = true, features = ["build"] }
[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/type-limits/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/uitests/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,6 @@ thiserror = "1.0"

[dev-dependencies]
trybuild = "1.0.76"

[features]
ffi-trace = ["uniffi/ffi-trace"]
3 changes: 3 additions & 0 deletions fixtures/uniffi-fixture-time/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,6 @@ uniffi = { workspace = true, features = ["build"] }

[dev-dependencies]
uniffi = { workspace = true, features = ["bindgen-tests"] }

[features]
ffi-trace = ["uniffi/ffi-trace"]
1 change: 1 addition & 0 deletions fixtures/version-mismatch/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ path = "src/bindgen.rs"

[features]
default = []
ffi-trace = ["uniffi/ffi-trace"]
# Change the API that the proc-macros wrap in order to test mismatches between
# the scaffolding and bindings code
proc_macro_v2 = []
Expand Down
Loading

0 comments on commit fdf1919

Please sign in to comment.