Linux 64位下栈布局

这篇博客探讨了Linux 64位环境下栈的布局,对比32位系统的不同。主要内容包括寄存器变化(esp->rsp, ebp->rbp, ip->rip),参数传递由寄存器完成,以及如何通过反汇编查看函数参数。文章通过实例展示了参数如何通过edi, esi, edx传递,并在func()和main()中进行验证。" 112964676,10552256,numpy同时洗乱多个数组的高效方法,"['numpy', '数组操作', '数据处理', '算法']
摘要由CSDN通过智能技术生成

看了coredump问题原理探究》系列博文后。在Linux 64位下分析了栈分布情况,在函数参数,局部变量等上面和32位有一些差别。现记录下来,以供参考。


        首先在64位下,寄存器esp变成了rsp,ebp变成了rbp,ip变成了rip。


环境:

          1. Linux内核版本:

>cat /proc/version
               Linux version 2.6.18-128.7.1.el5 (brewbuilder@norob.fnal.gov) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-44)) #1 SMP Mon Aug 24 08:12:52 EDT 2009

          2. Linux版本:

>lsb_release -a
LSB Version:    :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: ScientificSL
Description:    Scientific Linux SL release 5.3 (Boron)
Release:        5.3
Codename:       Boron

         3. G++版本:

                >g++ -v
Using built-in specs.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值