mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 03:53:32 +01:00
The executable which gdb was launched with is extracted from a core file and then transformed into an absolute path with "which". The latter failed, as by the time it's executed, PATH has not yet been expanded. Solved by using the executable name only, which then gets searched in the PATH by gdb. Signed-off-by: Jan Lindemann <jan@janware.com>
78 lines
1.6 KiB
Makefile
78 lines
1.6 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/ .*//')
|
|
ifeq ($(CORE_DUMPER),)
|
|
CORE_DUMPER = $(EXE_PATH)
|
|
endif
|
|
|
|
PID = $(shell pidof $(EXE_PATH))
|
|
|
|
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
|
|
echo-pid:
|
|
@echo PID = $(PID)
|