re: 函数调用之参数传递 王小明 2009-10-08 17:20
随便写了个函数试试,x86平台下,cygwin编译
void __attribute__((regparm(3))) test123(int a1,int a2,int a3)
{
printf("%x,%x,%x",a1,a2,a3);
}

随便调用下
test123(0x12345678,0x88993344,0x99774433);
反汇编过来看看,
4015f4: b9 33 44 77 99 mov $0x99774433,%ecx
4015f9: ba 44 33 99 88 mov $0x88993344,%edx
4015fe: b8 78 56 34 12 mov $0x12345678,%eax
401603: e8 90 ff ff ff call 401598 <_test123>
re: 君正linux交叉编译平台搭建 王小明 2009-09-29 17:38
設定 core file 最大 size
core file size 預設為 0,這裡改成沒有限制

$ ulimit -c unlimited

執行程式

$ ./mytest
Segmentation fault (core dumped)

利用 GDB 讀取 core file

1. 利用 bt 找出發生錯誤的地方
2. 利用 list *ADDRESS 列出產生錯誤的程式碼
3. 利用 print 觀察變數值

$ gdb ./mytest core
...
(gdb) bt
re: 君正linux交叉编译平台搭建 王小明 2009-09-26 10:36
解压缩 xxx.tar.gz

tar -zxvf xxx.tar.gz
解压缩 xxx.tar.bz2

tar -jxvf xxx.tar.bz2
压缩aaa bbb目录为xxx.tar.gz

tar -zcvf xxx.tar.gz aaa bbb
压缩aaa bbb目录为xxx.tar.bz2

tar -jcvf xxx.tar.bz2 aaa bbb
re: 君正linux交叉编译平台搭建 王小明 2009-09-26 09:21
在使用ubunru编译一些文件时会提示No curses/termcap library found这样的话,这个提示的意思很明显,缺少termcap库文件。
解决这个问题的方法是使用下面的命令安装
sudo apt-get install libncurses5-dev
然后再重新编译刚才的文件就可以了。
sll $8,$y,32-size
srl $8,$8,32-size-pos

sll $9, $x,32-pos
srl $9, $9,32-pos

srl $x, $x,pos+size
sll $x, $x,pos+size

or $x,$x,$8
or $x,$x,$9