linux mmap出现Address 0x7ffff7ff6000 out of bounds>

原创 2015年07月09日 10:29:21
 **mmap.c**
  1 #include <stdio.h>
  2 #include <fcntl.h>
  3 #include <signal.h>
  4 #include <sys/mman.h>
  5 #include <unistd.h>
  6 #define FILESIZE 8192
  7 
  8 int main()
  9 {
 10     int i;
 11     char *p, tmp;
 12     struct stat sb;
 13     int fd = open("1.txt", O_RDWR | O_CREAT, S_IRUSR|S_IWUSR);
 14     p = (char*)mmap(NULL,FILESIZE, PROT_READ|PROT_WRITE,MAP_SHARED, fd, 0);
 15     for (i=0; i<10; i++) {
 16         p[i] = 'a';
 17     }
 18     close(fd);
 19     munmap(p, FILESIZE);
 20     printf("ok\n");
 21     return 0;
 22 }

gcc mmap.c生成执行程序a.out, 运行a.out会出现总线错误 (核心已转储)

(gdb) p p 
$2 = 0x7ffff7ff6000 <Address 0x7ffff7ff6000 out of bounds>

用gdb去调试它会发现line 14映射的地址p有问题,而导致p有问题的原因是因为映射的文件1.txt的大小为0,也就是个空文件,修改方法很简单,让1.txt大小不为0就可以了。

mmap函数原型介绍

Using GDB <Address 0xffffffff out of bounds>

Using GDB I present a quick "howto" on using GDB to debug programs in a UNIX environment. Your sit...
  • middilestep
  • middilestep
  • 2014年11月24日 17:44
  • 2414

gdb调试core文件

编写服务器端程序,很容易遇到Crash问题,比较幸运的是Linux提供了core file,保留了Crash的现场。有时候,根据当前的调用栈,并且打印出当前栈的变量就可以分析出crash的原因,但是,...
  • hzhsan
  • hzhsan
  • 2014年07月28日 12:02
  • 9653

善用GDB 调试一些函数栈被毁坏的问题

最近差一些问题,这些问题的现象一开始难以解释,函数的参数地址在函数内部被传递给另外的函数,然后发现地址发生了改变,这样的情况称之为函数的栈被毁坏,导致无法重入。 然后被调用的函数里面,访问了非法的地...
  • ontheline
  • ontheline
  • 2013年11月26日 16:30
  • 13469

textfield、 textView内容长度限制(中文输入越界)附带:textView回车效果,判断禁止字符

error: NSMutableRLEArray replaceObjectsInRange:withObject:length:: Out of bounds 实现textView的代理 - (v...
  • zhaochunyang_0726
  • zhaochunyang_0726
  • 2015年01月27日 11:02
  • 1759

UVA - 10951 Polynomial GCD (最大公共多项式)

Description Problem C Polynomial GCD Input: standard input Output: standard output Given ...
  • u011345136
  • u011345136
  • 2014年08月25日 15:24
  • 1034

NSString:创建,长度,取字符,是否以某字符串开头,结尾, 查找指定字符串的范围,截取,拼接,替换,比较,替换,数值转换,大小写转换

//1 创建对象 //1 便利构造器(+号方法) NSString *str1 = [NSString stringWithFormat:@"iPhone%d", 5]...
  • vaercly
  • vaercly
  • 2014年08月06日 20:59
  • 3117

Camera CTS failed 解决方法汇总

1.android.hardware.camera2.cts.ExtendedCameraCharacteristicsTest--testAvailableStreamConfigs junit....
  • Alexson_Wang
  • Alexson_Wang
  • 2016年08月23日 11:29
  • 4791

关于tableview的一些bug

about tableview bug 内存压力而奔溃 原因:cell没有被复用 一般来说,对于cell的复用是这样子的: 关于cell的复用:这里根据屏幕的高...
  • u010241322
  • u010241322
  • 2015年03月24日 18:39
  • 991

再谈multistage text input(中文输入法)下UITextView的内容长度限制

之前写过一篇《如何更好地限制一个UITextField的输入长度》,在文章最后得到的结论是可以直接使用UIKIT_EXTERN NSString *const UITextFieldTextDidCh...
  • jasonblog
  • jasonblog
  • 2014年07月04日 15:50
  • 12976

关于java.lang.invoke包的解释

尊重原版:http://blog.csdn.net/zhangrongchao_/article/details/41603887 来源:深入理解Java 7:核心技术与最佳实践 ...
  • u014285884
  • u014285884
  • 2017年12月07日 13:22
  • 46
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux mmap出现Address 0x7ffff7ff6000 out of bounds>
举报原因:
原因补充:

(最多只允许输入30个字)