最新 | 最热门 | 最高评价

+0  在 Python 中使用 GDB 来调试[译文]

Tag: Python | GDB | 译文
alswl 发于 2013年11月01日 01:11 | 点击: 2290 | 展开摘要
大约一年前,我接触了 Java 中的 Btrace
能够不停机查看线上 JVM 运行情况的特性让我艳羡不已。
另外还有强悍的 jStack 和 jConsole 来进行运行期侦测,JVM 的工业级强度果然不是盖的。

当时公司技术方面也遇到了一些瓶颈,一部分原因是 CPython 本身的 IO 模型问题,
另一方面也和早期代码写的极不工整脱不了关系。万般无奈之下,我们用
Jython 推翻重做了主要业务,效果立竿见影,但同时也把真实问题给规避掉了。

在这之后我们在 JVM

查看全文: http://www.udpwork.com/item/11050.html

+1  与符号表分离程序或动态库, 如何用GDB调试

Tag: 性能优化 | gdb 动态库 调试 符号表
五竹 发于 2013年03月25日 11:17 | 点击: 3094 | 展开摘要
1       Debugging Information in Separate Files

GDB支持用户将程序调试信息放在一个独立的文件里,而不是和可执行程序在一个文件中,GDB可以某种方式来查找和自动加载调试信息。由于调试信息可能非常大,有时可能比可执行代码自身还要大,某些系统将其可执行程序的调试信息以单独的文件发布,在需要调试问题的时候,用户可以再安装这些文件。

GDB支持两种设置单独调试信息文件的方式:

可执行程序里包含了一个调试链接,此链接指定了单独的调试

查看全文: http://www.udpwork.com/item/9523.html

+0  使用gdb调试运行时的程序小技巧

Tag: 未分类 | gdb | pstack
士豪 发于 2012年10月15日 12:32 | 点击: 2040 | 展开摘要
原创文章,欢迎转载。转载请注明:转载自淘宝核心系统团队博客,谢谢!

原文链接地址:使用gdb调试运行时的程序小技巧

下面介绍我调试时经常遇到的三种问题,如果大家也有类似的问题交流一下解决方法:

情景1:在不中止程序服务的情况下,怎么调试正在运行时的程序

情景2:需要同时看几个变量的值或者批量查看多个core文件的堆栈信息怎么办

情景3:遇到需要查看、队列、链表、树、堆等数据结构里的变量怎么办

1. 情景1:在不中止程序服务的情况下,怎么调试正在运行时的程序

查看全文: http://www.udpwork.com/item/8601.html

+0  gen_tcp接受链接时enfile的问题分析及解决

Tag: Erlang探索 | 网络编程 | enfile | gdb | systemtap
Yu Feng 发于 2011年12月05日 12:16 | 点击: 2591 | 展开摘要
原创文章,转载请注明: 转载自Erlang非业余研究

本文链接地址: gen_tcp接受链接时enfile的问题分析及解决

最近我们为了安全方面的原因,在RDS服务器上做了个代理程序把普通的MYSQL TCP连接变成了SSL链接,在测试的时候,皓庭同学发现Tsung发起了几千个TCP链接后Erlang做的SSL PROXY老是报告gen_tcp:accept返回{error, enfile}错误。针对这个问题,我展开了如下的调查:

首先man accept手册,确定en

查看全文: http://www.udpwork.com/item/6466.html

+0  GDB的两个技巧

Tag: 奇技淫巧 | GDB技巧,core dump stack失效,用户命令脚本
chuanhui 发于 2011年06月06日 21:55 | 点击: 2863 | 展开摘要
分享两个GDB的小技巧:

1, GDB失效时手工得到stack;

2, GDB执行用户命令脚本;

调试内存型服务程序的有时会遇到core dump或死锁问题,且gdb或者pstack都无法显示调用栈(call stack)。这是因为线程的调用栈被破坏了,而调用栈存放了函数的返回地址,gdb解析函数返回地址(根据地址查找符号表)失败,gdb也没有进行容错处理,只要有一处地址解析失败就无法展开调用栈。然而幸运的是,调用栈往往只是部分被破坏,RSP堆栈寄存器中保存的值往往也是

查看全文: http://www.udpwork.com/item/5192.html

+5  GDB中应该知道的几个调试方法

Tag: 编程工具 | GDB
陈皓 发于 2011年02月10日 09:34 | 点击: 3515 | 展开摘要
七、八年前写过一篇《用GDB调试程序》,于是,从那以后,很多朋友在MSN上以及给我发邮件询问我关于GDB的问题,一直到今天,还有人在问GDB的相关问题。这么多年来,有一些问题是大家反复在问的,一方面,我觉得我以前的文章可能没有说清楚,另一方面,我觉得大家常问的问题正是最有用的,所以,在这里罗列出来。希望大家补充。

一、多线程调试

多线程调试可能是问得最多的。其实,重要就是下面几个命令:

info thread 查看当前进程的线程。

thread <ID>

查看全文: http://www.udpwork.com/item/4241.html

+0  Linux下pstack的实现

Tag: Linux | 工具介绍 | 源码分析 | gdb | pstack
Yu Feng 发于 2010年11月28日 18:44 | 点击: 2631 | 展开摘要
原创文章,转载请注明: 转载自Erlang非业余研究

本文链接地址: Linux下pstack的实现

Linux下有时候我们需要知道一个进程在做什么,比如说程序不正常的时候,他到底在干吗?最直接的方法就是打印出他所有线程的调用栈,这样我们从栈再配合程序代码就知道程序在干吗了。

Linux下这个工具叫做pstack. 使用方法是

# pstack
Usage: pstack <process-id>

当然这个被调查的程序需要有符号信息。 比较雷人的是 这个

查看全文: http://www.udpwork.com/item/3607.html

+0  自定义Emacs工具栏

Tag: Elisp | 中级 | C | Emacs | emacser | emacser.com | gdb | gud | keymap | meteor | meteor1113
meteor1113 发于 2010年06月09日 01:03 | 点击: 3236 | 展开摘要
作者: Meteor Liu

前几天,emacs@newsmth上jcjbrian发了张他用emacs开发c++的截图,对他的工具栏挺感兴趣,所以向他请教了一下,同时也阅读了相关的info,在我的emacs上加了些自定义的工具栏(下图),在这记录一下以备忘。

emacs的工具栏配置都存放在tool-bar-map这个keymap里,这个keymap跟我们平时用于键绑定的keymap是一样的1,emacs会根据tool-bar-map的内容自动生成工具栏,如果执行一下下面

查看全文: http://www.udpwork.com/item/1669.html

+0  在Emacs中使用gdb调试程序

Tag: IDE | 中级 | ann | cedet | ctrl | ede | Emacs | gdb | gud | lambda | org
ahei 发于 2010年03月29日 10:18 | 点击: 2967 | 展开摘要
作者: Tiger Soldier

1 引言

2 准备工作:将调试信息编译在程序中

3 开始:开启Emacs的调试模式GUD

3.1 运行gdb

3.2 gdb界面

3.3 小结

4 调试:设置断点,控制程序流程

4.1 设置、删除断点

4.2 运行程序

4.3 单步执行、运行到光标处

4.4 继续运行程序

4.5 小结

5 察看变量的值

5.1 本地变量buffer

5.2 察看变量值

5.3 用工具提示显示变量

查看全文: http://www.udpwork.com/item/858.html
|<<<1>>>| 一共1页, 9条记录