GDBFrontend:一款灵活可扩展的GUI调试工具

栏目: IT技术 · 发布时间: 4年前

内容简介:今天给大家介绍的是一款名叫GDBFrontend的工具,这是一款GUI调试工具,该工具易于使用,并且灵活可扩展,广大研究人员可以根据自己的需求来对GDBFrontend进行功能扩充。如果你使用的是基于Debian发行版的操作系统平台,你可以使用Deb包来安装GDBFrontend。广大用户可以使用下列命令完成工具安装:

今天给大家介绍的是一款名叫GDBFrontend的工具,这是一款GUI调试工具,该 工具 易于使用,并且灵活可扩展,广大研究人员可以根据自己的需求来对GDBFrontend进行功能扩充。

工具安装

Debian安装(Debian / Ubuntu / KDE Neon)

如果你使用的是基于Debian发行版的操作系统平台,你可以使用Deb包来安装GDBFrontend。

广大用户可以使用下列命令完成工具安装:

echo "deb [trusted=yes] https://oguzhaneroglu.com/deb/ ./" | sudo tee -a /etc/apt/sources.list > /dev/null

sudo apt update

sudo apt install gdbfrontend

通过apt完成安装后,我们还需要使用apt upgrade来完成新版本更新,获取更新的命令如下:

sudo apt update
sudo apt upgrade gdbfrontend

接下来,我们就可以使用下列命令来运行GDBFrontend了:

gdbfrontend

GIT安装

当然了,广大研究人员也可以直接下载该项目的最新版本源码,然后配置并运行GDBFrontend。

工具要求:

1、GDB => 8.2 (python3)
2、 python 3
3、tmux

此时,我们可以使用下列命令将项目源码克隆至本地,然后安装并使用GDBFrontend:

git clone https://github.com/rohanrhu/gdb-frontend.git gdb-frontend

cd gdb-frontend

./gdbfrontend

接下来,使用下列命令运行工具:

http://127.0.0.1:5551/terminal/

如果你不需要配合终端使用的话,可以运行下列命令:

http://127.0.0.1:5551/

我们还可以使用下列命令打开GBD Shell:

tmux a -t gdb-frontend

Flatpak

在新版本的GDBFrontend中,还会添加针对Flatpak包的支持。

./gdbfrontend

$ gdbfrontend --help
GDBFrontend is a easy, flexible and extensionable gui debugger.
Options:
--help, -h: 显示帮助信息
--version, -v: 显示版本信息
--gdb-executable=PATH, -g PATH: 指定GDB可执行文件路径
--tmux-executable=PATH, -tmux PATH: 指定Tmux可执行文件路径
--terminal-id=NAME, -t NAME: 指定tmux 终端识别符名称
--verbose, -V: 启用verbose 输出

参数选项

--help, -h

显示帮助信息

--version, -v

显示版本信息

--gdb-executable=PATH, -g PATH

指定GDB可执行文件路径,例如:gdbfrontend –gdb-executable=/path/to/gdb。(可选项)

--tmux-executable=PATH, -tmux PATH

指定Tmux可执行文件路径,例如:gdbfrontend –tmux-executable=/path/to/tmux。(可选项)

--terminal-id=PATH, -t PATH

指定tmux 终端识别符名称(ID),例如:gdbfrontend –terminal-id=terminal-name。(默认: gdb-frontend)

--verbose, -v

启用verbose 输出

错误解决

有的时候GDB和GDBFrontend可能会以非正常状态关闭,此时我们可以使用下列命令终止gdb-frontend Shell:

tmux kill-session -t gdb-frontend

插件系统开发

插件样本

下面给出的是一个插件样本,可以在项目目录plugins/hello中的hello文件中找到相关代码。

首先,我们需要找到config.py文件,然后取消下列代码的注释:

disabled_plugins = [
"hello"
]

GDBFrontend的插件都存储在plugins/目录中,典型的插件文件结构如下:

plugins/
hello/
frontend/
html/
hello.html
js/
hello.js
css/
hello.css
url_modules/
api.py
config.py
urls.py
hello.py

插件文件-config.py

一个插件文件应当包含的基础信息如下:

DESCRIPTION = "Example GDBFrontend plugin."

AUTHOR = "Oğuzhan Eroğlu <rohanrhu2@gmail.com> ( https://oguzhaneroglu.com/ )"

HOMEPAGE = " https://github.com/rohanrhu/gdb-frontend "

VERSION = [0, 0, 1]

hello.py样本代码:

import importlib
import plugin
gdb = importlib.import_module("gdb")
class HelloPlugin(plugin.GDBFrontendPlugin):
def __init__(self):
plugin.GDBFrontendPlugin.__init__(self)
def loaded(self):
gdb.events.new_objfile.connect(self.gdb_on_new_objfile)
def unloaded(self):
gdb.events.new_objfile.disconnect(self.gdb_on_new_objfile)
def gdb_on_new_objfile(self, event):
print("[HELLO] Event: new_objfile:", event)

工具运行截图

GDBFrontend:一款灵活可扩展的GUI调试工具

GDBFrontend:一款灵活可扩展的GUI调试工具

GDBFrontend:一款灵活可扩展的GUI调试工具

GDBFrontend:一款灵活可扩展的GUI调试工具

GDBFrontend:一款灵活可扩展的GUI调试工具

GDBFrontend:一款灵活可扩展的GUI调试工具

许可证协议

本项目的开发与发布遵循GNU General Public License v3 (GPL-3)开源许可证协议。

项目地址

GDBFrontend:【 GitHub传送门

* 参考来源: rohanrhu ,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM


以上所述就是小编给大家介绍的《GDBFrontend:一款灵活可扩展的GUI调试工具》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

我++

我++

威廉·J·米切尔 / 刘小虎等 / 中国建筑工业出版社 / 2006-6 / 50.00元

随着《我++——电子自我和互联城市》(Me++:The Cyborg Self And The Networked City)的出版,《比特之城》(City Of Bits)和《E-托邦》(E-topia)的作者完成了一套检验信息技术在日常生活中之衍生的非正式三部曲。威廉·J·米切尔描述了自马可尼以后的百年间无线技术的发展变化:网络的不断扩大,发送和接受装置的不断缩小。正如他所说,这就像“大人国重......一起来看看 《我++》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

随机密码生成器
随机密码生成器

多种字符组合密码

URL 编码/解码
URL 编码/解码

URL 编码/解码