debugMajorpending
Debug: Application crashes on startup with no error message
Viewed 0 times
silent crashstartup failurestraceexit codeno error message
Error Messages
Problem
Application crashes immediately on startup with no visible error, exit code, or stack trace.
Solution
Systematic debugging when the app dies silently:
# 1. Check exit code
./myapp; echo "Exit code: $?"
# 0 = normal exit (maybe main() returns too early)
# 1 = error
# 137 = killed (OOM)
# 139 = segfault
# 134 = abort
# 2. Check stderr (might be redirected)
./myapp 2>&1 | cat
# Or: ./myapp 2>error.log
# 3. Trace system calls
strace ./myapp 2>&1 | tail -50 # Linux
dtruss ./myapp 2>&1 | tail -50 # macOS
# Look for: failed open(), connect(), mmap()
# 4. Check for missing shared libraries
ldd ./myapp # Linux
otool -L ./myapp # macOS
# If 'not found' -> install the library
# 5. Check available memory and resources
ulimit -a
# Look for: max memory, open files, stack size limits
# 6. Environment issues
env | sort > env_dump.txt
# Compare with a working environment
# Common: missing PATH, wrong HOME, missing config dir
# 7. Config file issues
# App might exit if config is invalid
# Check: permissions, syntax, encoding (UTF-8 BOM?)
file config.yml
head -c 3 config.yml | xxd # Check for BOM bytes
# 8. Port already in use
lsof -i :8080
# If occupied, app exits silently
# 9. Permission issues
namei -l /path/to/executable
# Shows permission chain for entire path
# 10. Add early logging
# If you can modify the code, add a print/log as the
# FIRST line of main() to confirm execution startsWhy
Silent crashes usually mean the error happens before logging is initialized, in a signal handler, or the output goes somewhere unexpected. System-level tools (strace) catch what application logging misses.
Context
Debugging application startup failures
Revisions (0)
No revisions yet.