diff --git a/debug_support/gdb_update.sh b/debug_support/gdb_update.sh new file mode 100755 index 0000000..8a70330 --- /dev/null +++ b/debug_support/gdb_update.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env sh + +# Motivation: build gdb 12.1 from source because of this issue: https://github.com/Gallopsled/pwntools/issues/1783 + +# Optional: remove existing gdb +echo ">>>> remove existing gdb:" +echo ">>>> sudo apt remove gdb gdbserver" +#sudo apt remove gdb gdbserver + +# Get latest source from https://ftp.gnu.org/gnu/gdb/ +echo ">>>> Get latest source from https://ftp.gnu.org/gnu/gdb/:" +echo ">>>> wget https://ftp.gnu.org/gnu/gdb/gdb-12.1.tar.xz" +wget https://ftp.gnu.org/gnu/gdb/gdb-12.1.tar.xz + +echo ">>>> tar xf gdb-12.1.tar.xz" +tar xf gdb-12.1.tar.xz + +# Install necessary build tools +echo ">>>> Install necessary build tools:" +echo ">>>> sudo apt install -y build-essential texinfo bison flex" +sudo apt install -y build-essential texinfo bison flex python3-dev libgmp-dev +echo ">>>> cd gdb-12.1" +cd gdb-12.1 +echo ">>>> Configure with python3 support" +echo ">>>> ./configure --with-python=/usr/bin/python3" +# Configure with python3 support +./configure --with-python=/usr/bin/python3 + +# Build (this takes a while) +echo ">>>> Build (this takes a while)" +echo ">>>> make -j8" +make -j8 + +# Install binary +echo ">>>> Install binary:" +echo ">>>> sudo make install" +sudo make install diff --git a/debug_support/readme.txt b/debug_support/readme.txt index d85447e..49f5501 100644 --- a/debug_support/readme.txt +++ b/debug_support/readme.txt @@ -13,3 +13,8 @@ sudo chmod -x debug_support/gdb -i - eth-интерфейс к которому подключен Profinet мастер -v - уровень логов, чтобы был Debug нужно указать 4 раза -p - папка для хранения настроечных файлов + + +Если версия Ubuntu 22.04, то там есть баг с gdb - он падает при переключении на другой поток в отлажеваемом ПО +Для исправления нужно либо установить Ubuntu 22.10, либо собрать gdb 12.1. +Для сборки запустить скрипт gdb_update.sh