diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..a2004489d9a83c7f1b05e066e018c524425fbc11 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +docker_tuto-gdb-py.tar diff --git a/Dockerfile b/Dockerfile index 38417be28f619c47e78aa83a9321d438bcd2afd0..22176af01db10a9db17d5445bac0271328acc351 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,11 +10,11 @@ RUN pacman --noconfirm --needed -Sy gdb strace libdwarf make binutils gcc vim \ && mkdir -p /var/cache/pacman/pkg/ -RUN mkdir -p /home/gdb.py -WORKDIR /home/gdb.py +RUN mkdir -p /home/gdb +WORKDIR /home/gdb -COPY home /home/gdb.py -COPY Dockerfile /home/gdb.py +COPY home /home/gdb +COPY Dockerfile /home/gdb -RUN date > /home/gdb.py/.version -VOLUME /home/gdb.py +RUN date > /home/gdb/.version +VOLUME /home/gdb diff --git a/home/exercices.md b/home/exercices.md index 1ea2adaf1a1889acb5fef1a757ec7a300ac0ab8c..97b21f24eb3669e90022e7b1c86692f990415fd9 100644 --- a/home/exercices.md +++ b/home/exercices.md @@ -6,7 +6,7 @@ Preliminary setup Prepare and launch the docker container: - HOST_DIR=/home/kevin/gdb.py_debug_data/ # absolute path required ; create it manually before + HOST_DIR=/home/kevin/gdb.py_debug_data/ # absolute path required docker run -it -v $HOST_DIR:/home/gdb.py/host -e GROUPID=$(id -g) -e USERID=$(id -u) --cap-add sys_ptrace kpouget/tuto-gdb.py Then if you want to share the data with your host, work from `~/host`, otherwise stay in `~`: @@ -219,4 +219,4 @@ Now you're know the basics of GDB scripting ! Get back to the slides *Part 2*, t 2. Return true breakpoint 3. Register watchpoint 4. Step into next call -5. Faking function execution +5. Faking function execution \ No newline at end of file diff --git a/home/init.sh b/home/init.sh index f7d4c114facdc26ff487705dc0a951bb210ff3bb..76e51297d2565cf6a092dbe833accf73b32034e9 100644 --- a/home/init.sh +++ b/home/init.sh @@ -20,8 +20,8 @@ then echo " Please run docker as follows:" cat <<EOF -HOST_DIR=$HOME/gdb.py_data # create it first ! -docker run -it -v \$HOST_DIR:/home/gdb.py/host -e GROUPID=\$(uid -g) -e USERID=\$(uid -u) --cap-add sys_ptrace kpouget/tuto-gdb.py +HOST_DIR=\$HOME/gdb_data # create it first ! +docker run -it -v \$HOST_DIR:/home/gdb/host -e GROUPID=\$(id -g) -e USERID=\$(id -u) --cap-add sys_ptrace kpouget/tuto-gdb.py EOF exec bash fi @@ -29,10 +29,10 @@ fi ##### admin stuff ##### echo "root:root" | chpasswd && echo "INFO: root password set to 'root'." -groupadd --gid $GROUPID jcf --non-unique -useradd --uid $USERID --gid $GROUPID jcf -chown jcf:jcf /home/jcf/ -R -echo "INFO: Docker image version $(cat /home/jcf/.version)" +groupadd --gid $GROUPID gdb --non-unique +useradd --uid $USERID --gid $GROUPID gdb +chown gdb:gdb /home/gdb/ -R +echo "INFO: Docker image version $(cat /home/gdb/.version)" ##### check strace ##### strace ls &>/dev/null @@ -43,13 +43,13 @@ fi ##### prepare host ##### -HOST_MNT=/home/jcf/host +HOST_MNT=/home/gdb/host if [ -z "$(ls -A $HOST_MNT/dwarf $HOST_MNT/python 2>/dev/null)" ] then echo "INFO: Running './prepare_host.sh' to populate $HOST_MNT host-shared directory." - su jcf -c ./prepare_host.sh + su gdb -c ./prepare_host.sh fi echo "INFO: Read ~/README or ~/presentation.pdf for usage details" -exec su jcf +exec su gdb diff --git a/home/prepare_host.sh b/home/prepare_host.sh index bc31f7995b8e32dd47faf0a7dfc1c89876309e61..03719babd6d04f8e04293177018c22388e5d6702 100755 --- a/home/prepare_host.sh +++ b/home/prepare_host.sh @@ -1,6 +1,6 @@ #! /usr/bin/bash -HOST_MNT=/home/jcf/host +HOST_MNT=/home/gdb/host mkdir -p $HOST_MNT diff --git a/home/presentation.pdf b/home/presentation.pdf index 1852fa63b5c6792d75baef7e4b34a28b10f99d25..eaf52cc5c3fca14207d9816572fc3c76b431c47c 100644 Binary files a/home/presentation.pdf and b/home/presentation.pdf differ diff --git a/tuto-gdb-py.tgz b/tuto-gdb-py.tgz index e7217623abbf0d37993cbae7694e02a8cb6af86e..162f6770d60b66fad391e3b1ee463e47a203aa53 100644 Binary files a/tuto-gdb-py.tgz and b/tuto-gdb-py.tgz differ