nginx模块开发(二) 使用gdb-dashboard调试

gdb-dashboard或者 gdbgui
或者gdb自带的tui(ctl x + a )

gdb-dashboard这个样子
[img]http://dl2.iteye.com/upload/attachment/0126/4893/5f21001a-8bc9-3f1d-81a4-fee1ac3bee4e.png[/img]
[url]https://github.com/cyrus-and/gdb-dashboard[/url]

[url]https://metricpanda.com/tips-for-productive-debugging-with-gdb[/url]


如果报错
[code="java"]# gdb
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-94.el7
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "<string>", line 387, in start
File "<string>", line 290, in load_modules
File "<string>", line 493, in __init__
File "<string>", line 523, in add_subcommands
File "<string>", line 1402, in commands
AttributeError: 'module' object has no attribute 'COMPLETE_EXPRESSION'
/root/.gdbinit:1432: Error in sourced command file:
Error while executing Python code.
>>>
[/code]


[url]https://github.com/cyrus-and/gdb-dashboard/issues/1#issuecomment-176717956[/url]


Actually, overcoming the lack of gdb.COMPLETE_EXPRESSION is quite easy, just add:

python gdb.COMPLETE_EXPRESSION = gdb.COMPLETE_SYMBOL
as the first line in .gdbinit.


gdbgui
[url]https://reverseengineering.stackexchange.com/questions/1392/decent-gui-for-gdb[/url]
[url]https://github.com/cs01/gdbgui[/url]
gdb dashboard
[url]https://github.com/cyrus-and/gdb-dashboard[/url]

gdbgui
pip install gdbgui --upgrade
gdbgui -r


为了gdb-dashboard 只有7.7以上支持 默认centos7不行
安装gdb-8.0
dashboard -layout


######################
#################################
★★项目.gdbinit
[url]http://blog.youkuaiyun.com/hejinjing_tom_com/article/details/42490771[/url]
gdb -iex "set auto-load safe-path /"
或者
项目的gdbinit文件
vim ~/.gdbinit
set auto-load safe-path /
set history save on


每个目录内的.gdbinit就起作用了
查验:

info auto-load

readelf -S /usr/local/nginx/sbin/nginx

前面的几个是全局符号, 其中重要的有一个源代码绝对根路径

readelf -p .debug_str /usr/local/nginx/sbin/nginx |grep opt

##########################
l
查看当前代码路径
info source
查看全部
info sources

list 是显示源码
(gdb) list # 查看代码执行位置的10行
(gdb) list # 再显示10行
(gdb) list - # 查看上一个list命令之前的10行
(gdb) list 3,19 # 查看3-19行
(gdb) list main # 查看main函数开始的10代码
(gdb) list hello.c:23 # 查看hello.c文件第23行后的10行
(gdb) list hello.c:main # 查看hello.c文件中函数main开始的10行
(gdb) list *0x1000000 # 查看地址为 0x1000000 的10行代码,


查找
search ngx_stri
reverse-search ngx_stri


set history save on
set history filename <fname>
By default the history file (.gdb_history) is saved in the current


run之后
record
可以回退
reverse-next
reverse-有很多
record stop

设置变量
set var a=6

删除断点
info b
delete b
Ubuntu 12.04 + Nginx + WordPress老旧系统修复实战 在IT基础设施中,LAMP/NMP技术栈是Web服务的基石,其核心原理涉及进程通信、套接字绑定、字符集兼容性及配置驱动的请求转发机制。理解Nginx与PHP-FPM的Unix域套接字交互、MySQL连接解析逻辑(如localhost与127.0.0.1差异)、以及WordPress对mysqlnd驱动的强依赖,是保障遗留系统稳定运行的关键技术价值。这类知识广泛应用于政企旧系统维保、安全加固、技术债务治理及面试深度考察场景。本文聚焦Ubuntu 12.04这一典型EOL环境,结合Nginx 1.1.19与Wo 阅读详情

相关推荐

C++高性能Web应用开发:嵌入式服务器与前端框架融合实践

在现代软件开发中,客户端-服务器架构是实现复杂应用的核心模式,它通过分离关注点来提升系统的可维护性和可扩展性。其基本原理是客户端负责用户交互与界面呈现,服务器端处理业务逻辑与数据存储,两者通过网络协议进行通信。这种架构的技术价值在于能够充分利用不同技术栈的优势,实现高性能与良好用户体验的结合。在应用场景上,当需要将C++的高性能计算、硬件交互能力与Web技术的广泛可访问性、丰富UI生态相结合时,传统的Web开发或纯本地GUI方案往往存在局限。本文聚焦于通过嵌入式Web服务器(如cpp-httplib)与现代

weixin_30328063的博客 333

gdb-dashboard:用Python重塑GDB调试体验

自定义脚本支持赋予了gdb-dashboard极高的扩展性。用户可以根据自己的特定需求编写Python脚本,添加新的面板或功能。这些脚本可以自动化复杂的调试任务,或者集成外部工具和资源,使得调试过程更加高效。

2401_83063795的博客 969

Linux C/C++实战进阶:AI Infra、后端与音视频开发核心能力栈解析

这类教程最值得先看的不是它覆盖了多少方向,而是它能不能帮你把零散的知识点,串成能解决实际问题的工程能力。特别是对于工作1-5年、想从“会写代码”转向“能搞定项目”的程序员,或者应届生想快速补齐项目经验,核心不是学更多新名词,而是搞清楚从原理到上线的完整链条里,每一步到底在做什么、为什么这么做、以及出了问题怎么查。 下面我会围绕Linux C/C++开发,拆解几个主流方向(AI基础设施、后端、音视频)的实战进阶路径。重点不是罗列知识点,而是告诉你每个阶段该优先掌握什么、怎么验证、以及从学习到落地的关键跳板在哪

weixin_34198881的博客 411

可视化调试工具 gdb-dashboard

本文介绍了gdb-dashboard调试工具的安装与使用方法。首先通过wget下载.gdbinit脚本到工程目录,gdb启动时会自动加载该脚本。配置方面,可以在~/.gdbinit.d/init文件中自定义显示模块(如registers、assembly、stack等)和输出终端。调试时,使用target remote连接gdb服务,通过dashboard命令可重定向组件到不同终端(用tty查看终端编号),并支持设置内存监视和变量查看功能。该工具高度可定制,能提升调试效率。

人无远虑,必有近忧 5406

Mythos Preview:通用大模型如何重构软件安全能力边界

大语言模型正从‘文本生成工具’演进为具备跨栈代码理解与自主攻防推理能力的通用智能体。其核心原理在于融合底层系统知识(如内核源码、指令集、固件协议)与形式化漏洞建模能力,实现从‘匹配模式’到‘证明存在’的安全分析范式跃迁。这种能力带来显著技术价值:将SWE-bench Pro等真实工程任务准确率提升至77.8%,在CyberGym红队模拟中达成83.1%全流程自动化,大幅压缩‘发现-验证-修复’闭环时间。典型应用场景覆盖开源组件审计、云原生渗透测试及嵌入式固件逆向,尤其适用于DevSecOps与关键基础设施运

weixin_30321449的博客 436

程序员侠客梦:从单机剑客到AI铸剑师的技术主权演化史

在软件工程发展进程中,‘技术自主权’与‘问题终结权’始终是驱动开发者深度投入的核心动力。本文从操作系统权限、中间件治理、可观测性主权等基础概念切入,解析分布式系统与云原生架构如何重构工程师的技术影响力边界;结合提示工程、数据飞轮、人机协同工作流等AI原生实践,揭示‘解题能力’向‘铸剑能力’跃迁的底层原理。其技术价值在于帮助个体识别职业阶段中的权力迁移节点,支撑高可用系统设计、稳定性保障及AI增强型研发体系构建。适用于云原生平台工程师、SRE、技术决策者及希望持续进化的资深开发者。

diaojin6880的博客 493

gdb-dashboard的简单使用

众所周知,随着IDE的普及,越来越多的人不习惯命令行调试,但是Linux开发又绕不开GDB,来认识一下gdb-dashboard。

Dorthyn的博客 1818

gdb-dashboard:Python中GDB的模块化可视界面

GDB仪表板 GDB仪表板是使用编写的独立.gdbinit文件,该文件启用了模块化界面,可显示有关要调试程序的相关信息。 它的主要目的是减少检查当前程序状态所需的GDB命令数量,从而使开发人员可以将主要精力放在控制流程上。 快速开始 只需将放在您的主目录中,例如: wget -P ~ https://git.io/.gdbinit (可选)安装以启用语法突出显示: pip install pygments 然后像往常一样进行调试,每次劣等程序停止时,仪表板都会自动出现。 请记住,尚未重新定义GDB命令,而是可以通过主显示dashboard命令使用所有功能(请参阅help dashboar

【C++】在windows下配置一个小巧实用的C/C++调试环境

虽然在大部分常用的C/C++编辑器中,调试功能已经很方便且完善,但是,如果你还需要一个小巧一点,调试信息还完善的调试环境的,可以试试在cygwin中安装cgdb+gdb-dashboard的这种配置。

. 1170

数通基础(基本网络通信原理、IP地址如何配置、DHCP、DNS域名系统、路由技术基础、静态路由 、TCP和UDP、vlan虚拟局域网、trunk、三层交换)

我们知道了1、电脑开机,通过dhcp获取ip地址2、电脑输入域名,www.baidu.com电脑把www.baidu.com发到自己的dns服务器3、dns服务器把域名解析成对应的ip地址4、电脑向百度服务器发送一个请求。

qq_53235556的博客 6477

机器学习参数寻优:方法、实例与分析

机器学习模型的性能很大程度上依赖于其参数的选择。参数寻优(Hyperparameter Tuning)是提升模型表现的关键步骤之一。本文将详细介绍主流的参数寻优方法,包括网格搜索(Grid Search)、随机搜索(Random Search)、贝叶斯优化(Bayesian Optimization)、和超参数优化库(如Optuna和Hyperopt)等,并探讨它们的优缺点及适用场景。

甜盐的博客 2841

推荐开源项目:GDB Dashboard —— 现代化的GDB调试界面

推荐开源项目:GDB Dashboard —— 现代化的GDB调试界面 【免费下载链接】gdb-dashboard Modular visual interface for GDB in Python 项目地址: https://gitcode.com/gh_mi...

gitblog_00067的博客 774

企业华为TaurusDB数据库国产替代要点全记录

国产化数据库全方位对比、从互联网企业的先进经验来看mysql的用法、及sql优化、sql异构修改、及数据同步方面都做了一些讲解

深耕互联网的码农,在AI及国产化浪潮下,希望把自己的能力输出给更多的人 1063

构建安全高效的Pwndbg远程调试协作环境:从原理到实践

在软件调试、漏洞分析和逆向工程领域,调试器是核心工具,用于动态分析程序执行状态、内存数据和指令流。其工作原理是通过进程控制接口(如ptrace)与被调试程序交互,实现断点设置、单步执行和内存查看。GDB作为经典调试器,通过Python插件如Pwndbg增强了上下文感知与可视化能力,极大提升了调试效率。然而,在团队协作场景下,直接共享调试会话会引入二进制泄露、敏感数据暴露和宿主入侵等安全风险。因此,需构建安全的远程调试协作环境,在隔离网络中通过反向代理、命令过滤和审计日志等技术,实现实时上下文共享与受控交互。

weixin_34194359的博客 619

单智能体篇:Prompt工程艺术

模型在接收到 Prompt 时会自动扮演“角色”,角色定义的好坏直接影响智能体输出的风格和专业性。角色定义的重要性让智能体具备明确身份,例如“你是一位专业理财顾问”或“你是一个幽默的文案创作助手”。角色限定了模型知识输出的范围,使回答更专业、更贴合预期。实战示例模糊Prompt给我一些投资建议。你可以投资股票或者基金。优化Prompt你是一位具有10年经验的专业理财顾问,请给我针对30岁男性,年收入20万,风险偏中等的投资组合建议。

公众号:AI前沿侦探 1303

《时序分析、时序约束和时序收敛》专栏的说明与导航

《时序分析、时序约束和时序收敛》专栏的说明与导航(建议阅读)。

孤独的单刀 14万+

OpenClaw:Node.js驱动的AI网关中枢与OpenAI协议统一方案

AI网关是连接大模型服务与应用的关键中间件,其核心原理在于协议适配、流量调度与企业级治理能力。技术价值体现在将异构AI服务(如Claude、DeepSeek、本地Llama)抽象为统一OpenAI兼容API,实现鉴权、限流、熔断、日志与响应重写等生产就绪能力。典型应用场景包括多模型路由编排、私有模型安全接入、技能插件(Codex)扩展及流式响应治理。本文聚焦OpenClaw这一基于Node.js构建的可插拔AI网关中枢,深入解析其事件驱动架构优势、npm生态集成能力与调试友好性,帮助开发者跨越‘能跑通’到‘

weixin_30542079的博客 376

海康VisionMaster与西门子Smart 200进行S7通信

海康VisionMaster与西门子Smart 200进行S7通信

haier123888的博客 8178

M2.7自进化AI:本地部署可调试的自我训练大模型

大语言模型(LLM)的自我训练正从理论走向工程实践,其核心在于构建可闭环、可审计、可逆的自主优化机制。不同于依赖人类反馈的RLHF或DPO,新一代自进化范式强调模型对任务解析、动态评估与架构重写三层能力的协同——这要求底层支持状态建模、轻量适配器注入与可信度门控等关键技术。MiniMax开源的M2.7正是这一范式的首个可本地运行、可单步调试的实现,它将‘模型训练自己’转化为`pip install`后即可启动的标准化流程,并深度集成OpenRoom界面状态引擎,使AI真正理解而非识别GUI。本文聚焦于M2.

vanadiumlin 753

Windows Docker Desktop部署MaxKB详细教程

MaxKB(Max Knowledge Base)是一款基于大语言模型(LLM)和检索增强生成(RAG)技术的开源知识库问答系统,旨在帮助企业、教育机构及研究组织高效管理知识并提供智能问答服务。

猿小白的博客 1372

控制科学与工程(自动化)保研经验【4】——浙大篇

控制科学与工程(自动化)保研经验【4】——浙大篇

Control Everything 1万+

从工具使用者到开发者:网络安全渗透测试工具开发与漏洞挖掘核心技术解析

在网络安全领域,渗透测试是评估系统防御有效性的关键手段。其核心原理在于模拟攻击者行为,通过主动探测和分析来发现潜在的安全弱点。随着网络环境日益复杂,通用自动化扫描工具在应对定制化业务逻辑和新型防御机制时往往力不从心,这凸显了掌握定制化工具开发技术的工程价值。从概念上讲,工具开发不仅提升了测试的针对性和效率,更是实现深度漏洞挖掘的基础。具体到技术实现,现代渗透测试工具通常采用分层架构,涵盖数据采集、核心引擎、插件扩展和交互报告等模块。在漏洞挖掘方面,模糊测试(Fuzzing)作为自动化挖掘的利器,通过覆盖率引

weixin_34393428的博客 451

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Claude Mythos Preview:AI安全能力的范式重置与治理新范式

大语言模型正从‘知识问答’迈向‘自主工具化执行’,其核心已不再是参数规模或指令微调,而是推理时计算(Test-time Compute)驱动的动态能力生成。以Mythos Preview为代表的前沿模型,通过长上下文理解、多步工具闭环调用与深度搜索式漏洞挖掘,在SWE-bench、Terminal-Bench等真实工程基准上实现质变突破,标志着AI从‘能做’到‘稳做’的关键跃迁。这种能力带来全新安全挑战——目标错位、规划逃逸与策略性规避,倒逼组织构建以可观测性、可审计性、可干预性为支柱的AI治理框架。本文聚

weixin_33827590的博客 386

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

计算机面试例题搜集(更新)

MySQL的逻辑架构从上到下分为四层。最上面是连接层,负责处理客户端的连接请求,包括TCP握手、用户名密码认证、权限校验,以及维护连接线程。连接池就在这里,每个客户端连接会分配一个独立线程,线程会缓存起来复用,减少频繁创建销毁的开销。连接层还会做安全检查,比如SSL连接加密。第二层是服务层,这是MySQL的核心功能层。它包含SQL接口模块,接收SQL语句并返回结果;查询解析器会把SQL解析成解析树,检查语法和语义是否正确;查询优化器会根据成本模型选择最优执行计划,比如决定用哪个索引、join顺序怎么排;还有

2301_81704123的博客 434

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

技术文章系列整理(持续更新)

本博客有很多关于性能及测试开发的文章。我试着对你可能感兴趣的一些重要文章进行分类。

7DGroup,让技术更有价值! 1万+

Mythos大模型:AI安全能力跃迁与红队自动化新范式

大语言模型正从代码辅助工具演进为具备自主攻击链执行能力的安全智能体。其核心原理在于大模型基座、强强化学习训练与高推理预算三者协同突破,使AI能在真实工程环境中完成跨文件漏洞定位、POC构造、沙箱规避及多步横向移动等复杂任务。技术价值体现在对齐SWE-bench Pro与CyberGym等高阶安全基准的显著超越,支撑自动化渗透测试、开源组件深度审计与供应链风险识别等关键场景。尤其在零日漏洞发现率、沙箱逃逸行为与策略性隐瞒等前沿能力上,Mythos标志着AI安全能力与对齐风险同步跃升的新拐点。

weixin_30955617的博客 337
上一篇: nginx模块开发(一)
下一篇: nginx模块开发(三)upstream模块
linux内核控
博客等级 码龄19年 41粉丝 638原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值