symbols is a CLI tool to download and upload debug symbols for native code (such as C,C++, or Rust) to symbol servers.
symbols can be configured via command line arguments, environmental
variables, and a configuration file. The configuration is picked up in that
order.
Please use --help to see the command line arguments.
!!! Not yet implemented !!!
The following environmental variables can be used
| Name | Type | Description |
|---|---|---|
| SYMBOLS_CACHE_PATH | string | The path to the cache for symbols and sources to be stored. |
| SYMBOLS_VERSOSE | int | The verbosity of the symbols output. 0 = normal, 3 = trace logging. |
| SYMBOLS_TIMEOUT | int | Timeout for each transaction with the server |
# Example symbols config file
[[servers]]
access = "read"
type = "http"
url = "https://debuginfod.elfutils.org/"
[[servers]]
access = "readwrite"
type = "s3"
bucket = "matts-symbols"
region = "us-east-2"
profile = "default"The configuration file is a TOML based file which can configure the local cache path and the remote file servers.
The cache path can be configured using cache = <path to cache>.
cache = /tmp/symbols_cacheThe cache defaults to $XDG_CACHE_PATH/symbols.
File servers are configured in the servers array. Their are only two supported types of servers currently (HTTP and S3). Each server must have the following entries:
type - This should be either s3 or http.
access - This should be either read or readwrite.
Each server also have fields that are specific to it's type. For HTTP the user must specify the URL.
[[servers]]
type = "http"
url = "https://debuginfod.elfutils.org/"For S3 the user must specify the bucket name and the region. The user may specfy a prefix for the key in the buckey and a profile name if the AWS credentials are not default.
[[servers]]
access = "readwrite"
type = "s3"
bucket = "matts-symbols"
region = "us-east-2"
profile = "matt"
prefix = "symbols/"