linux下64位汇编的系统调用(2)

本文探讨64位Linux系统调用,包括如何查看调用号、参数传递方式以及结果返回。在64位系统中,系统调用参数通过寄存器传递,最多6个,超过部分未知处理方式。调用规则涉及rdi、rsi等寄存器,调用号存于rax,返回结果也在rax。对于浮点数参数的处理,将在后续博文中讲解。
摘要由CSDN通过智能技术生成

知道了syscall调用号之后还不算完,还要搞清楚2件事:

1 每种调用号需要传递哪些参数;
2 调用如何传递参数以及结果如何返回;

第一个问题的答案是:
在linux系统中某个程序执行时进行的系统调用可以通过strace命令来查看,solaris中对应的命令为dtrace,而mac os x中可以通过类似的dtruss命令来查看。当进程已经处于 D 状态(uninterruptible sleep)时,strace 也帮不上忙。这时候可以通过:

cat /proc/<PID>/syscall

来查看。(详细内容可以到http://www.jb51.net/article/50923.htm查看)

32位的系统调用表的参数可以到
http://syscalls.kernelgrok.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大熊猫侯佩

赏点钱让我买杯可乐好吗 ;)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值