development/gdb-dashboard: Added (An advanced gdb python interface)

Signed-off-by: B. Watson <urchlay@slackware.uk>

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
D Woodfall 2023-05-11 09:16:14 +01:00 committed by Willy Sudiarto Raharjo
parent 7ba3f3721a
commit 8e6c725d26
No known key found for this signature in database
GPG key ID: 3F617144D7238786
5 changed files with 126 additions and 0 deletions

View file

@ -0,0 +1,32 @@
GDB dashboard is a standalone .gdbinit file written using the Python API
that enables a modular interface showing relevant information about the
program being debugged. Its main goal is to reduce the number of GDB
commands needed to inspect the status of current program thus allowing
the developer to primarily focus on the control flow.
There are a few ways to enable the dashboard:
* Add the following line to the end of ~/.gdbinit:
source /etc/gdbinit.d/dashboard
* Enable in the GDB command using the -x flag:
gdb -q -x /etc/gdbinit.d/dashboard ...
or if using cgdb too:
cgdb -- -q -x /etc/gdbinit.d/dashboard ...
You may find that using cgdb and dashboard together works best with a
vertical split.
Press:
<Esc> to enter cgdb CLI.
<Ctrl-W> to toggle split orientation.
i to return to GDB insert mode.
Or add to ~/.cgdb/cdgbrc:
set wso=vertical

View file

@ -0,0 +1,14 @@
config() {
NEW="$1"
OLD="$(dirname $NEW)/$(basename $NEW .new)"
# If there's no config file by that name, mv it over:
if [ ! -r $OLD ]; then
mv $NEW $OLD
elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
# toss the redundant copy
rm $NEW
fi
# Otherwise, we leave the .new copy for the admin to consider...
}
config etc/gdbinit.d/dashboard.new

View file

@ -0,0 +1,51 @@
#!/bin/bash
# Slackware build script for gdb-dashboard.
# by D Woodfall <dave@slackbuilds.org>
# Licensed under the WTFPL.
# See http://www.wtfpl.net/txt/copying/ for details.
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=gdb-dashboard
VERSION=${VERSION:-0.17.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
ARCH=noarch
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
fi
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-wiki.tar.gz
chown -R root:root .
find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
\! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a LICENSE README.md $PRGNAM-wiki $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
install -D -m 644 .gdbinit $PKG/etc/gdbinit.d/dashboard.new
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE

View file

@ -0,0 +1,10 @@
PRGNAM="gdb-dashboard"
VERSION="0.17.2"
HOMEPAGE="https://github.com/cyrus-and/gdb-dashboard"
DOWNLOAD="https://github.com/cyrus-and/gdb-dashboard/archive/v0.17.2/gdb-dashboard-0.17.2.tar.gz"
MD5SUM="15ba39e7349282964454fa34ab621806"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="D Woodfall"
EMAIL="dave@slackbuilds.org"

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
gdb-dashboard: gdb-dashboard (An advanced gdb python interface)
gdb-dashboard:
gdb-dashboard: GDB dashboard is a standalone .gdbinit file written using the Python
gdb-dashboard: API that enables a modular interface showing relevant information
gdb-dashboard: about the program being debugged. Its main goal is to reduce the
gdb-dashboard: number of GDB commands needed to inspect the status of current
gdb-dashboard: program thus allowing the developer to primarily focus on the control
gdb-dashboard: flow.
gdb-dashboard:
gdb-dashboard: https://github.com/cyrus-and/gdb-dashboard/
gdb-dashboard: