blob: 11269c14381b285297027f8966eff6aa071f677d [file] [view] [edit]
# Debugging Crubit
crubit.rs/overview/debugging
<!--*
# Document freshness: For more information, see <internal link>.
freshness: { owner: 'mvanbem' reviewed: '2026-10-23' }
*-->
Crubit is trying to solve a hard problem and is under rapid development. Things
go wrong, and it's nice to have tools and methods to diagnose those problems.
[TOC]
## Verbose Logging
NOTE: This feature is under development. There might not be much in the logs
yet. See b/449749452 for status, and the design doc crubit.rs-logging.
Crubit tool invocations only log at the error level or higher to keep spam out
of build logs, but the stderr logging verbosity level is configurable.
We have a shell script checked in that automates the process of invalidating
your local Bazel cache and rerunning Crubit on a specific target while emitting
info logs:
```
common/bazel_support/run_with_verbose_logging.sh
```
This script accepts zero or more Bazel flags (each starting with `--`) followed
by one Bazel target label to be built.
### Example usage with cc_bindings_from_rs
```bash
$ common/bazel_support/run_with_verbose_logging.sh \
--config=llvm-unstable \
//third_party/rust/bytes/v1:bytes
```
### Example usage with rs_bindings_from_cc:
```bash
$ common/bazel_support/run_with_verbose_logging.sh \
--config=llvm-unstable \
//file/base
```
### Implementation details
The stderr logging level is configured through the Bazel custom build setting
`//common/bazel_support:verbose_log_targets`, which accepts a
list of strings that are each interpreted as a target label. It's probably
easier to just run the script.