jw-pkg/make/debugger.mk
Jan Lindemann e3ad1b3839 debugger.mk: Add targets attach-gdb and attach-lldb
Signed-off-by: Jan Lindemann <jan@janware.com>
2016-03-09 22:49:54 +00:00

77 lines
1.7 KiB
Makefile

ifeq "$(COMPILER_SUITE)" "gcc"
DEBUGGER = gdb
endif
ifeq "$(COMPILER_SUITE)" "clang"
DEBUGGER = lldb
endif
CORE_DUMPER = $(shell echo -e "quit" | $(DEBUGGER) --core=$(CORE) 2>&1 | \
$(SED) '/Core was generated/ !d; s/Core was generated by `//; s/ .*//' | xargs -r which)
ifeq ($(CORE_DUMPER),)
CORE_DUMPER = $(EXE_PATH)
endif
PID = $(shell ps aux | $(SED) "/$(notdir $(EXE_PATH))\( \|$$\)/ !d; /sed/ d; /defunct/ d" | awk '{print $$2}')
all:
gdb ddd:
ifneq ($(CORE),)
$@ --core=$(firstword $(CORE)) --args $(CORE_DUMPER) $(EXE_ARGS)
else
$@ --args $(CORE_DUMPER) $(EXE_ARGS)
endif
lldb:
ifneq ($(CORE),)
$@ --core $(firstword $(CORE)) -f $(CORE_DUMPER) -- $(EXE_ARGS)
else
$@ -f $(CORE_DUMPER) -- $(EXE_ARGS)
endif
kdbg:
$@ $(CORE_DUMPER) $(firstword $(CORE)) -a "$(EXE_ARGS)"
cgdb:
ifneq ($(CORE),)
$@ -- --core=$(firstword $(CORE)) --args $(CORE_DUMPER) $(EXE_ARGS)
else
$@ -- --args $(CORE_DUMPER) $(EXE_ARGS)
endif
attach:
$(DEBUGGER) $(EXE_PATH) -p $(PID)
attach-lldb:
lldb $(EXE_PATH) -p $(PID)
attach-gdb:
gdb $(EXE_PATH) -p $(PID)
attach-ddd:
ddd $(EXE_PATH) -p $(PID)
attach-strace:
strace -f $(EXE_PATH) -p $(PID)
report:
generate-coredump-report.sh -l
mkdir -p crashes
if ls *core*.txt.bz2* >/dev/null 2>&1; then mv *core*.txt.bz2 crashes/; fi
view-report:
less `ls -rt crashes/*core*.txt.bz2 | tail -1`
localcore:
echo core.%h.%e.%p | sudo tee /proc/sys/kernel/core_pattern
cp `ls -rt /var/cores/*core* 2>/dev/null | tail -1` .
centralcore:
echo /var/cores/core.%h.%e.%p | sudo tee /proc/sys/kernel/core_pattern
coreclean: centralcore-clean
centralcore-clean:
rm -f /var/cores/core* /var/cores/vgcore* || exit 0