From 714548ef913f3b0c12c5381d46c8ff1e5b703865 Mon Sep 17 00:00:00 2001 From: Vadim Sychev Date: Fri, 15 Jul 2022 09:44:07 +0300 Subject: [PATCH] =?UTF-8?q?dev(UML-981):=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D1=81=D0=BA=D1=80=D0=B8=D0=BF=D1=82=20=D0=BE?= =?UTF-8?q?=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20gdb?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- debug_support/gdb_update.sh | 37 +++++++++++++++++++++++++++++++++++++ debug_support/readme.txt | 5 +++++ 2 files changed, 42 insertions(+) create mode 100755 debug_support/gdb_update.sh 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