腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
3
回答
如何
从可执行文件中获取段
地址
并查找堆栈
地址
、
、
、
我需要从可执行文件中获取段
的
开始和结束,例如使用objdump命令(文本、数据、bss)。我需要从我调用
的
文件中获取这个信息(
程序
应该检索关于它自身
的
信息)。我该怎么做呢。此外,我还尝试获取堆栈段
的
起始
和结束
地址
。我只尝试获取第一个和最后一个局部变量
的
地址
,但这将只显示完整堆栈
的
一部分。
如何
获取全
栈
的
地址
? 如果有任何帮助,我将不胜感激。提前进行
浏览 3
提问于2014-11-03
得票数 2
1
回答
为什么在GDB中,"frame at“
的
值与ebp($fp)寄存器
的
值不同?
、
、
、
我试图通过
查看
GDB中
的
栈
帧信息来理解基本
的
汇编语言。我试着找出当一个函数被main函数调用时发生了什么。但我发现"info frame“中
的
"frame at”
的
值与"info reg“中
的
ebp寄存器
的
值不同。按照惯例,这两个值不应该都指示堆栈帧
的
起始
点并且是相同
的
吗?0xffffcec0 0xffffcec0 ebp 0xffffced0
浏览 0
提问于2018-09-23
得票数 4
3
回答
C语言中
的
内存分配
、
、
、
、
我
如何
检查我
的
堆、
栈
等位于内存
的
哪些部分?我目前正在
查看
一个用C语言编写
的
程序
,在
查看
.elf文件时,我可以看到该
程序
正在使用
的
内存
地址
,但我不知道它是在堆中还是在堆栈中。
浏览 0
提问于2011-02-03
得票数 0
1
回答
线程堆栈是
如何
在C中创建
的
?
、
、
、
假设我们有以下
程序
: int main() { Pthread_create(&tid, NULL, thread, NULL); return NULL; } 下图显示了主线程
栈
: ? 我
的
问题是,创建新线程后,新线程自己
的
堆栈是什么样子
的
?新堆栈
的
开始是否紧跟在主线程之后,如下所示: ? 或者新线程
的
堆栈
的
起始<
浏览 11
提问于2021-01-25
得票数 1
1
回答
linux
下
的
CAN协议
栈
有没有人能推荐一下
linux
下
的
Can协议
栈
列表?我使用
的
是支持CAN总线
的
飞思卡尔imx286处理器,我使用
的
是Flex驱动
程序
。最重要
的
是,我必须使用像CANOpen这样
的
CAN协议
栈
。
浏览 74
提问于2016-08-16
得票数 0
1
回答
dll镜像
的
虚拟内存怎么会比硬盘空间大1000倍呢?
、
、
、
我正在开发一个32位
的
windows应用
程序
,它有时会耗尽内存(2 2GB
的
虚拟
地址
空间)。当我
查看
如何
使用WinDbg或VMMap分配虚拟内存时,我注意到dll映像占用了85MB
的
虚拟内存空间。然而,当我
查看
硬盘时,dll只有81KB。 dll镜像
的
虚拟
地址
空间怎么会比磁盘上
的
大1000倍呢?请注意,我只是询问" image ",而不是堆或
栈
,或映射内存,只是
浏览 2
提问于2010-11-20
得票数 0
回答已采纳
1
回答
局部变量
的
地址
不在smaps显示
的
堆栈
地址
范围内
、
、
、
、
0 [stack]我在这个进程上运行
浏览 2
提问于2014-01-05
得票数 1
1
回答
在运行时获取
Linux
内核函数
的
结束
地址
。
、
、
我试图获得内核函数
的
边界(例如,系统调用)。现在,如果我正确理解,我可以通过读取/proc/kallsyms或System.map获得感兴趣
的
函数
的
起始
地址
,但我不知道
如何
获得该函数
的
结束
地址
。您可能知道,/proc/kallsyms允许我们
查看
Linux
内核
的
符号表,这样我们就可以看到所有导出符号
的
开始
地址
。我们可以使用下
浏览 2
提问于2013-07-25
得票数 3
2
回答
为什么munmap需要一个长度作为参数?
、
、
我在想,为什么映射内存
的
大小应该是一个传入
的
参数,既然从同一个
地址
开始
的
映射不能超过一个(可以吗?),为什么
linux
内核不能同时记录
起始
地址
和长度,而是让用户空间
程序
记住它们。我
的
意思是,为什么不是,只是使用
起始
地址
作为主键来存储信息树。
浏览 1
提问于2012-08-22
得票数 12
回答已采纳
1
回答
其中_bss_start是定义
Linux
内核源
、
、
我正在翻阅
Linux
内核源代码,在一个汇编文件中找到了_bss_start C变体,但找不到它真正定义和初始化
的
位置。看起来_bss_start是bss段
的
起始
地址
,但是它是在哪里以及
如何
用内核源代码中
的
值初始化
的
,我正在研究
linux
源代码2.6.25。我
查看
了asm-generic/section.h文件,它
的
定义如下所示但是_bs
浏览 1
提问于2013-07-08
得票数 4
回答已采纳
1
回答
如何
从库中获取函数名和
Linux
中
的
地址
、
、
我正在学习
如何
使用dlopen、dlsym等函数在给定库中获取给定函数
的
地址
,但
如何
做相反
的
操作呢?例如,如果我知道我
的
进程目前在libgtk-x11-2.0.so.0中
的
gtk_main+0xa7,我
如何
确定它是什么函数? 谢谢你提前帮忙!
浏览 1
提问于2015-10-27
得票数 0
回答已采纳
2
回答
在堆栈
的
gdb中找不到"%s“个字符
、
、
、
当我
的
程序
在gdb中反汇编时,我可以看到buf
的
地址
被压入
栈
,但我没有看到格式字符串被压入
栈
。有什么原因吗?这是一个聪明
的
编译器优化吗?我尝试过编译一些printf语句
的
不同变体,看看我是否可以模仿没有被压入堆栈
的
"%s“字符串(或它
的
地址
),但我做不到。这是
程序
代码: char buf[128
浏览 1
提问于2011-12-10
得票数 3
回答已采纳
3
回答
进程在虚拟内存中
的
起始
和结束
地址
、
、
我有一个我写
的
C
程序
,我正在尝试制作它
的
内存映射。我正在寻找
的
东西,最好是只给我一个十六进制
地址
的
开始和结束。
浏览 0
提问于2013-09-20
得票数 1
2
回答
给定一个指令
地址
,可以确定包含它
的
函数
的
起始
地址
吗?
、
、
、
、
我在当前
的
项目中遇到了这个问题,它需要在二进制级别上对代码进行推理。 我认为我们可以通过
查看
调用指令
的
操作数来确定
程序
中所有函数
的
起始
位置。在我们有了这个列表之后,我们可以通过简单地向后搜索直到找到
起始
地址
来确定哪个函数包含
地址
吗?例如,包含指令
的
函数
的
起始
地址
是小于指令
地址
的
最大函数
地址
吗?如果上面的方法不正
浏览 0
提问于2012-05-29
得票数 3
回答已采纳
5
回答
printf in C--%p%c%s
的
指针变量
、
、
say(char msg[]) printf("%s\n", msg);前两个是有意义
的
,但我不太理解第三个函数是
如何
工作
的
。我只知道msg指向字符串第一个字符
的
内存
地址
。提前谢谢。
浏览 0
提问于2012-06-27
得票数 3
回答已采纳
2
回答
操作系统内核和网络协议
栈
在哪里重叠?
、
我正在努力学习网络协议
栈
。传输、IP、数据链路层库代码实现)以及
linux
。我不知道从哪里开始。 如果
Linux
没有将它作为核心特性,那么
linux
是否只为网络部分提供占位符(就像只提供宏以启用第三方堆栈如果
linux
有内置
浏览 8
提问于2021-12-10
得票数 2
3
回答
“堆栈以每个
程序
的
相同
地址
开始”
、
在机器上运行
的
每个进程都被认为是唯一在其上运行
的
进程。并且每个进程都有一个文本、数据和堆栈部分。然而,我不能理解为什么每个进程
的
堆栈
地址
都是从相同
的
地址
开始
的
(假设没有安装内核补丁,并且禁用了
地址
随机化)。 有人能告诉我一些阅读资源或解释为什么会发生这种情况吗?
浏览 1
提问于2010-12-31
得票数 1
回答已采纳
1
回答
基本寄存器和限制寄存器在哪里?
、
、
、
、
每个进程
的
基本
地址
和限制
地址
是不同
的
。那么,CPU
如何
知道每个进程
的
这些寄存器
的
值呢? 编辑:每个进程在内存、
起始
地址
(基本)和结束
地址
(base+limit)上都有一个位置。通过
查看
这些
地址
,cpu不会对这些
地址
范围执行任何操作,以避免影响其他进程
的
内存。因此,每个进程都有一个
起始
地址
(基)。我<em
浏览 2
提问于2015-10-27
得票数 1
1
回答
在原始套接字中填充源IP
地址
以获取有效响应
、
、
、
我正在使用c/c++进行一些基本
的
网络编程。我正在尝试做
的
是创建带有填充了我自己
的
值
的
报头
的
数据包(而不是内核),将数据包发送到某个服务器并获得响应。例如,我会向某个端口
的
主机发送一个SYN数据包,并检查该主机是否使用有效
的
SYN_ACK进行响应。我想知道ip/tcp报头中
的
source_address和source_port字段需要填入什么才能得到有效
的
响应。使用本地
地址
(127.0.0.1)将
浏览 0
提问于2013-11-16
得票数 1
2
回答
从/到用户空间切换到内核空间时
如何
使用4 4gb(VM)
地址
空间
、
、
、
我
查看
了很多关于
如何
将进程
地址
空间划分为进程/内核
的
在线线程/教程我怀疑内核是
如何
使用Helloworld
程序
栈
的
。你能告诉我整个行刑过程是怎么进行
的
吗? ./helloworld -> printf() ->写入系统调用->显示驱动
程序</em
浏览 4
提问于2011-05-24
得票数 0
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
如何在 Linux 上查看用户的创建日期
IAR如何查看文件(源程序)的位置
如何查看小程序的基础信息、服务类目等
如何在 Linux/Unix 之上绑定 ntpd 到特定的 IP 地址
如何在 Linux 中切换相同程序的不同版本
热门
标签
更多标签
云服务器
ICP备案
对象存储
实时音视频
云直播
活动推荐
运营活动
广告
关闭
领券