自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 android 调试利器之IDA

android 调试利器之IDA  (xingchongatgmaildotcom)工欲善其事,必先利其器IDA 是公认的反汇编最给力的工具。google IDA 或者IDApro 就能找到IDA的主页;IDA价格是很贵的,最便宜的license也要超过500美元,不过他提供Demo版本,虽然功能有限制,但基本功能都在,而且可以无限期使用;IDA不但支持x86,也支

2012-11-18 22:27:45 4974

原创 android 调试利器之 strace

strace 是linux下的调试利器;debug居家必备strace可以跟踪所有的系统调用,打印系统调用的参数和返回值; strace还可以指定跟踪子线程/子进程,这是调试多线程程序必须的;andriod 使用了linux操作系统,strace当然是好用的;strace本身不依赖于系统,从一个机器拷贝到另一个机器直接能用;可以看到,strace 只依赖三个最基本的库:

2012-11-10 12:46:32 12301 3

原创 原子性和线程安全

原子性和线程安全 (xingchongatgmaildotcom)指令原子性在单核时代,每条指令的执行都是原子的,即指令执行的中间状态是外部不可见的。这是cpu必须要保证的。从逻辑上来说,cpu只需要保证中断/异常触发的时候,当时要执行的指令要么完成,要么看起来和没开始一样。这叫做状态一致 (state consistent). 保证了状态一致性也就保证了原子性。

2012-11-04 15:22:03 2974

原创 gdb 调用栈 (call stack)

分享一篇不错的文章讲述调用栈; 如果得到调用栈http://www.yosefk.com/blog/getting-the-call-stack-without-a-frame-pointer.html不做全文翻译,做个简单归纳:有三种方式得到调用栈:a. 通过栈桢寄存器(frame pointer register). 每一层函数调用都保存前一层栈桢, 这样顺

2012-06-19 15:23:28 5232

原创 Calloc Vs Malloc

C 语言中,经常有这样的需求:分配一块内存,并且初始化为0:很多人会写如下的代码:       char *mem = (char*) malloc (size);       if (!mem)             exit(-1);       memset(mem, 0, size);上诉代码可以很好的工作,但是有更好的做法:        char

2012-06-14 20:52:17 2742 1

翻译 从汇编角度看英特尔x86函数调用规范

 原文地址: http://www.unixwiz.net/techtips/win32-callconv-asm.html        从汇编角度看英特尔x86函数调用规范              在阅读编译好的C代码中,一个大问题就是函数调用规范。调用规范是调用函数(caller)与被调用函数(callee)对他们之间如何传递参数和返回值,以及如何使用堆栈所达成的协议。

2007-04-01 17:42:00 4932

原创 使用Qemu来调试linux内核

 Qemu是一个优秀的开源ISA模拟器,支持很多体系结构,当然包括x86。Qemu提供调试功能,可以对被模拟进行调试。Qemu主页http://fabrice.bellard.free.fr/qemu/Qemu下载页面http://fabrice.bellard.free.fr/qemu/download.html 包括源码,可执行文件,已制作好的disk file等Qemu有使用

2007-03-28 23:08:00 4750

原创 被glibc忽悠了

2006/05/09一段代码其中包含两次glibc函数调用getpid(); 本意是希望后一个getpid()调用产生一次system call; 可是glibc只进行了一次system call,第二次glibc直接使用了第一次的结果; 搞得我调了半天其它代码。整了个示例如下:C程序://test.cint main(){ int pid; pid = getpid(); pid = get

2006-07-20 22:16:00 3752

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除