Debugging a Crash for Advanced (Technical) Users
These instructions help users provide crash exception and traceback logs to developers to aid troubleshooting.
Testnet vs Mainnet
Whenever possible, recreate a crash in testnet. This avoids accidentally revealing private information about yourself, your Bitcoin transactions, or losing funds.
Network-Connected SeedSigner
For development and testing, we recommend network access via SSH to view crash logs. Follow these instructions to set up a USB relay for internet access. On a Raspberry Pi Zero W you can also connect to WiFi.
Airgapped Debugging Setup
For mainnet use, do not connect your device to a network. Instead connect an HDMI display (no internet) and a USB keyboard. This requires an HDMI adapter and a micro USB-to-USB-A adapter. Plug both in before powering on SeedSigner. The password for the SeedSigner pi user is raspberry.
Debugging Steps
Once signed in as pi (HDMI or SSH):
-
Enable the debug setting. This fork stores settings in
settings.json, not the oldsettings.ini.- On SeedSigner OS the file lives under the writable data directory, e.g.
/mnt/microsd/settings.json(Pi-style builds) or/mnt/sdcard/settings.json(Luckfox). On a development checkout it issettings.jsonin the source directory. -
Set
"debug": "E":"debug": "E" - You can also flip it through a SettingsQR. Save a copy and then restart the app.
- On SeedSigner OS the file lives under the writable data directory, e.g.
-
Stop the SeedSigner systemd process:
sudo systemctl stop seedsigner.service -
Start the Python app manually from the source directory:
cd seedsigner/src python3 main.py
SeedSigner should now be running with debug logging. Keep it connected to the display and keyboard, recreate the crash, and the traceback will be shown on the HDMI display (and written to the logs).
The fork also has a Test hardening and Memory info screen under Settings → Hardware for additional diagnostics.