Python调试不如强类型的语言方便,显示调用栈有时非常必要,inspect模块很好用import inspectinspect.stack()inspect.stack()返回的是一个函数栈帧列表如(已经做了一个for e in inspect(): print e 转化)(, '/usr/lib...
分类:
编程语言 时间:
2014-08-20 01:16:05
阅读次数:
267
正在运行的API有bug,不能var_dump进行调试,因为会影响client的调用。 将日志写到文件,查看也不方便,特别是带调用栈或大数据结构的文件日志,查看日志十分困难。 这时候用SocketLog最好,SocketLog通过websocket将调试日志打印到浏览器的console中。你还可以用...
分类:
其他好文 时间:
2014-08-07 07:14:29
阅读次数:
293
学习目标: 掌握多参数、单返回值的数学函数的定义和使用方法 学会用typedef定义结构体 学会用assert宏帮助调试 理解函数调用时用实参给形参赋值的过程 学会定义局部变量和全局变量 理解调用栈和栈帧,学会用gdb查看调用栈并选择栈帧 理解地址和指针 理解递归定义和递归函数 理解可执行文件中的正...
分类:
其他好文 时间:
2014-07-28 14:28:33
阅读次数:
240
有关Python中的并发编程实例,主要是对Threading模块的应用,文中自定义了一个Threading类库。一、简介 我们将一个正在运行的程序称为进程。每个进程都有它自己的系统状态,包含内存状态、打开文件列表、追踪指令执行情况的程序指针以及一个保存局部变量的调用栈。通常情况下,一个进程依照一个....
分类:
编程语言 时间:
2014-07-08 00:48:44
阅读次数:
257
被问到如何手动获取当前的调用栈,之前碰到过一时没记起来,现在回头整理一下。其原理是:使用backtrace()从栈中获取当前调用各层函数调用的返回地址,backtrace_symbols()将对应地址翻译成对应的符号信息,这两个函数在execinfo.h中声明。详细用法见后面的example。这里强...
分类:
系统相关 时间:
2014-07-07 15:10:37
阅读次数:
412
测试了两个case,属于之前blog的遗留问题: innodb如何加载数据字典 flush tables都做了什么操作先来看下innodb加载数据字典: 首次使用:select * from tt;1. 创建handler对象函数调用栈: open_binary_frm ...
分类:
数据库 时间:
2014-07-03 06:21:07
阅读次数:
318
通常基于递归实现的代码比基于循环实现的代码要简洁很多比如 二叉树遍历以及
二叉树的许多操作递归由于是函数调用自身,每一次函数调用,都需要在内存栈中分配空间以保存参数、返回地址以及临时变量而每个进程的栈容量是有限的,当递归调用的层级太多时,就会导致
调用栈溢出递归有时伴随大量重复的计算, 二叉树遍历的...
分类:
其他好文 时间:
2014-06-11 07:31:55
阅读次数:
187
mmc
io的读写从mmc_queue_thread()的获取queue里面的request开始。先列出调用栈,看下大概的调用顺序,
下面的内容主要阐述这些函数如何工作。host->ops->request() //
sdhci_request()mmc_start_request()mmc_sta...
分类:
其他好文 时间:
2014-06-08 19:09:05
阅读次数:
304
6 调用栈实例分析 本节通过代码实例分析函数调用过程中栈帧的布局、形成和消亡。6.1 栈帧的布局
示例代码如下: 1 //StackReg.c 2 #include 3 4 //获取函数运行时寄存器%ebp和%esp的值 5 #define
FETCH_SREG(_ebp, _esp) ...
分类:
编程语言 时间:
2014-06-04 19:30:54
阅读次数:
420
一个DBA同事昨天在执行一个命令行工具的时候发现程序hang住,问题挺有意思,值得记录下。
首先用pstack看了下程序的调用栈,这是个多线程程序,pstack结果看到几乎所有的线程都等在write调用上。如下是pt-pmp的输出结果:Tue May
27 18:30:06 CST 2014 ...
分类:
其他好文 时间:
2014-05-29 13:06:39
阅读次数:
351