-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgdb.sh
executable file
·42 lines (32 loc) · 1.21 KB
/
gdb.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/bin/bash
# This file is part of Jehanne.
#
# Copyright (C) 2016-2017 Giacomo Tesio <giacomo@tesio.it>
if [ "$JEHANNE" = "" ]; then
echo $0 requires the shell started by ./hacking/devshell.sh
exit 1
fi
KERNEL_TO_LOAD=$1
if [ "$KERNEL_TO_LOAD" = "" ]; then
KERNEL_TO_LOAD=$JEHANNE/arch/amd64/kern/jehanne
fi
echo > $JEHANNE/hacking/_gdb/env
echo "set \$JEHANNE = \"$JEHANNE\"" >> $JEHANNE/hacking/_gdb/env
if [ "$JEHANNE_GDB_LOGS" != "" ]; then
git rev-parse HEAD > $JEHANNE_GDB_LOGS
git status --porcelain -b >> $JEHANNE_GDB_LOGS
echo "set pagination off" >> $JEHANNE/hacking/_gdb/env
echo "set logging file $JEHANNE_GDB_LOGS" >> $JEHANNE/hacking/_gdb/env
echo "set logging overwrite off" >> $JEHANNE/hacking/_gdb/env
echo "set logging on" >> $JEHANNE/hacking/_gdb/env
fi
if [ "$JEHANNE_DEVELOPER_DIR" != "" ]; then
echo "set \$JEHANNE_DEVELOPER_DIR = \"$JEHANNE_DEVELOPER_DIR\"" >> $JEHANNE/hacking/_gdb/env
if [ -a $JEHANNE_DEVELOPER_DIR/gdbinit ]; then
echo source $JEHANNE_DEVELOPER_DIR/gdbinit >> $JEHANNE/hacking/_gdb/env
fi
else
echo "set \$JEHANNE_DEVELOPER_DIR = \"$HOME/.jehanne\"" >> $JEHANNE/hacking/_gdb/env
fi
gdb -x $JEHANNE/hacking/_gdb/init $KERNEL_TO_LOAD
rm $JEHANNE/hacking/_gdb/env