Automate Core File Debugging with F5 Next Core Loader¶
The F5 Next Core Loader utility streamlines the process of debugging core files by automatically verifying the core file’s hash, retrieving the container’s name and version, and fetching the required debugging artifacts (such as source code and symbols) from GitLab and Artifactory. It then initiates a Docker container that is pre-configured with debugging tools like GDB or Delve and attaches the core file, source code, and symbol tables for analysis. This eliminates the need for manual setup and improves the efficiency of debugging, making it easier to diagnose and resolve crashes.
ARM64 Debugging Support¶
The F5 Next Core Loader utility ensures that when debugging a pod supporting multiple architectures (e.g., arm64), it automatically selects the correct symbols for the core file’s architecture from Artifactory.
Debugging an ARM64 Core File on an ARM64 Server¶
To debug an ARM64 Core File on an ARM64 Server, follow these steps:
Download the latest F5 Next Core Loader utility from Artifactory.
curl -O https://artifactory.f5net.com/artifactory/pdtools-docker/core-debugger-binary/f5-next-core-loader-linux-arm64-<VERSION>
In this example, 0.1.44 is the version of the F5 Next Core Loader.
curl -O https://artifactory.f5net.com/artifactory/pdtools-docker/core-debugger-binary/f5-next-core-loader-linux-arm64-0.1.44
Download the latest configuration file (config.yml) from to debug the container core files. This file helps the F5 Next Core utility locate the correct artifacts (source code and symbol files) for each container.
curl -O https://artifactory.f5net.com/artifactory/f5-mbip-docker/core-loader-config/<VERSION>/config.yml
In this example, 1.5.18 is the version of the configuration file.
curl -O https://artifactory.f5net.com/artifactory/f5-mbip-docker/core-loader-config/1.5.18/config.yml
Run the debugging tool.
./f5-next-core-loader-linux-arm64-<VERSION> debug -f <ARM64_CORE_FILE_PATH> --config <CONFIG_FILE>
In this example, 0.1.44 is the version of the F5 Next Core Loader, /var/core/tmm_core.arm64 path of the ARM64 core file to debug, and /home/user/config.yml is the path of the configuration file.
./f5-next-core-loader-linux-arm64-0.1.44 debug -f /var/core/tmm_core.arm64 --config /home/user/config.yml
Available Commands¶
The lines are:
Usage:
[command]
Available Commands:
clean Cleans the generated artifacts folder. Optional: set --name and --version flags to clean up only that container's artifacts.
completion Generate the autocompletion script for the specified shell
debug Launches you into a container to inspect a core file. Automatically runs gdb or dlv depending on the corefile's binary process.
fetch Fetches the source code and symbol table for the given core file.
help Help about any command
tools Launches you into a container with debugging tools (gdb, delve) installed to inspect a core file.
validate Validates core file with md5sum/sha512sum file.
Flags:
-b, --binaryProcess string Binary process name (e.g. mbip-icb)
--clean Add --clean to a debug or tools command to clean up all generated artifacts from this session upon exiting the tool
--config string Path to config file (yaml) which defines container to artifact mappings (default "./config.yml")
-f, --coreFile string Corefile to process (e.g. ./core.f5-fsm-tmm.xxxx)
-a, --hashSum string Corefile md5sum or sha512sum file for validation purpose (e.g. ./core.f5-fsm-tmm.xxxx.sha512)
-h, --help help for this command
-p, --keyFilePassphrase string Passphrase to your git private key file, if any
-k, --keyFilePath string Path to your git private key file (e.g. ~/.ssh/id_rsa)
-n, --name string Container name (e.g. f5-fsm-tmm)
--privileged Run Docker container with elevated permissions
-c, --source string Source code path
-s, --symbol string Symbol file path (e.g. .../tmm64.debug or .../mbip-icb.symbols)
--verbose Verbose output. See commands executed and more details about what's going on under the covers
-v, --version string Container version (e.g. 0.640.0)
Use " [command] --help" for more information about a command.
Feedback
Provide feedback to improve this document by emailing spkdocs@f5.com.