深入探索Linux系统调用与参数处理
1. 栈上命令行参数与环境变量查看
在Linux系统中,程序启动时栈上会存储命令行参数和环境变量的相关信息。使用 x/20x 命令可以以十六进制格式显示从指定内存位置开始的前20个字节。栈顶的第一个值表示命令行参数的数量(包含程序名),接下来的两个内存位置存储指向程序名和命令行参数字符串的指针,这些字符串存储在栈的后续位置。
可以使用 x 命令结合指针地址查看这些字符串的值,示例如下:
(gdb) x/s 0xbffffa36
0xbffffa36: “/home/rich/palp/chap11/functest4”
(gdb) x/s 0xbffffa57
0xbffffa57: “10”
在命令行参数之后,栈上会放置一个4字节的空值,用于将其与环境变量指针的起始位置分隔开。同样可以使用 x 命令查看栈上存储的一些环境变量:
(gdb) x/s 0xbffffa5a
0xbffffa5a: “PWD=/home/rich/palp/chap11”
(gdb) x/s 0xbffffa75
0xbffffa75: “http_proxy=http://webproxy:1234”
1.1 查看命令行参数
了解了命令行参数在栈上的位置后,就可以编写一个简单的程序来
超级会员免费看
订阅专栏 解锁全文
1018

被折叠的 条评论
为什么被折叠?



