Linux内存显示错误,使用mmap读取内存的内容,出现“Segmentation fault”错误,请
使用mmap读取内存的内容,出现“Segmentation fault”错误,请帮看看原因。
这个程序的目的是用于功能调试的,正在读取一块网卡使用的dma内存空间,想看看里面的数据内容。
当我读取0x1b436c000 这个地址时,运行出现“Segmentation fault”错误。这个地址是网卡正在使用的地址。
当读取0x1c0004000这个地址时,就可以正常运行。这个地址是我在系统启动时保留下来的地址空间。
请问有什么区别吗? 难道是驱动正在使用的地址空间,其他程序就不能查看了吗?
谢谢!
int main()
{
unsigned char * map_base;
FILE *f;
int n, fd;
unsigned long addr;
unsigned char content;
int i = 0;
printf("step1\n");
fd = open("/dev/mem", O_RDWR|O_SYNC);
if (fd == -1)
{
return (-1);
}
printf("step2\n");
//rx buf
//map_base = mmap(NULL, 0x1000, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0x1c0004000); //run success
map_base = mmap(NULL, 0x1000, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0x1b436c000); //run fail
if (map_base == 0)
{
printf("NULL pointer!\n");
}
else
{
printf("Successfull!\n");
}
for (i=0;i
{
addr = (unsigned long)(map_base + i);
content = map_base[i];
if(i%16==0) {
printf("address: 0x%lx: content: 0x", addr );
}
printf("%02x", (unsigned int)content);
if(i%16==15) {
printf("\r\n" );
}
}
munmap(map_base, 0xff);
Linux内存显示错误,使用mmap读取内存的内容,出现“Segmentation fault”错误,请相关推荐
- 用GDB调试Segmentation Fault错误
调试Linux程序的时候,出现Segmentation Fault是最郁闷的事情了,程序代码量很大的时候,可能花很多时间都找不到出错原因. 这里介绍一种对你调试Segmentation ...
- onvif规范的实现:onvif开发常用调试方法 和常见的segmentation fault错误
在前几篇中,虽然已经实现了rtsp视频流的对接,但是还要做的工作还非常多,onvif本来就是一个覆盖面非常广的一个协议,每一个功能都要填充大量的函数.而且稍不注意就会出现segmentation fa ...
- Linux系统运行C语言编译的二进制文件报错:Segmentation fault
报错信息如下图所示: 当我运行Gps_Analysis二进制文件时出现如上错误,主函数源代码如下图所示: 于是我网上查了一下,讲得很专业.很详细,总结一下出现"Segmentation fa ...
- 由char* 引发的Segmentation fault错误
在学习形参带const限定符时,意外遇到Segmentation fault的bug问题.C程序是在linux环境下运行. 在维基百科上是这样解释Segmentation fault,存储器区段错误( ...
- excel 您输入的公式存在错误。如果您输入的内容不是公式,请在第一个字符之前输入单引号(‘)
输入公式之后,excel 文件 报错 "您输入的公式存在错误.如果您输入的内容不是公式,请在第一个字符之前输入单引号(') 大部分是我们的公式样式不对 ="("& ...
- 使用PyCharm读取Walden.txt内容时出现编码错误UnicodeDecodeError
使用PyCharm读取Walden.txt内容时出现UnicodeDecodeError: 'gbk' codec can't decode byte 0xbf in position 2: ille ...
- ubuntu Segmentation Fault错误原因
一. 什么是"Segmentation fault in Linux" 所谓的段错误就是指访问的内存超过了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位 ...
- centos使用yum时提示Segmentation fault错误的深入研究
头一次用CentOS,结果就遇到了在用yum时出现了centos使用yum时提示Segmentation fault,这个错误的解决方法网上不少,但是我测试了一下发现不是那么回事,最后几经研究终于搞定 ...
- Segmentation Fault 错误原因总结及解决方法
最新文章
- c# 文件及目录操作类
- cocos2d-x plist使用
- 十多位全球技术专家,为你献上近十个小时的.Net微服务介绍
- OpenGL-坐标系
- pythonifelse表达式_Python if else简洁写法,列表推导式,三目运算符写法
- kafka 不同分区文件存储_Kafka 系列(二)文件存储机制与Producer架构原理怎样保证数据可靠性??...
- JSONSerializer把类转换成JSON字符串
- 字符(串)转换ASCII码
- 文件管理器android实现,基于Android的文件管理器的设计与实现
- 酒店客房管理系统(C语言)
- NVIDIA TX2 安裝pytorch1.8
- uvaoj 10066 - The Twin Towers 最长公共子序列(LCS)
- EasyCVR平台通过国标GB28181接入柯达NVR显示注册失败,该如何解决?
- Cell Host | 张群业/王哲/张澄-肠道微生物群失调加重腹主动脉瘤
- 四、数据仓库--ORACLE数据库卸数实现
- linux 上 gcc -m32 编译报错解决方案
- 2021csgo网页开箱网站有哪些?csgo靠谱的开箱网站大全
- Python算法自动剪辑视频,视频丝滑换装无须视频编辑器
- 电脑C语言软件怎样拷贝到u盘,禁止U盘复制电脑文件、禁止电脑文件复制到U盘、禁止复制计算机文件到U盘的方法...
- 什么是信道复用?频分复用与时分复用的主要区别是什么?