博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
unix系统调试信息记录
阅读量:2154 次
发布时间:2019-05-01

本文共 436 字,大约阅读时间需要 1 分钟。

这里记录下调试过程中发现的测试程序中mmap fail导致的内存崩溃问题。

这是测试程序:

extern int errno;pdata = mmap(NULL, /*PAGE_SIZE*page_counts*/size, PROT_READ|PROT_WRITE,		MAP_ANONYMOUS|MAP_SHARED|MAP_POPULATE, -1, 0);	if (pdata == MAP_FAILED) {
printf(" mmap errno:%d\n",errno); }

unix系统调试可以通过包含#inlcude <errno.h>,然后引用errno这个变量,每一次调用失败系统就会自动填充,我们通过打印可以得到错误信息。

这里我们读到的错误信息是22,通过errno.h可以看到是 EINVAL,无效的参数引起的,查看系统mmap支持的参数类型,发现其flags参数不支持MAP_POPULATE,删除后运行正常。

转载地址:http://fhtwb.baihongyu.com/

你可能感兴趣的文章
PLSQL常用方法汇总
查看>>
几个基本的 Sql Plus 命令 和 例子
查看>>
PLSQL单行函数和组函数详解
查看>>
Oracle PL/SQL语言初级教程之异常处理
查看>>
Oracle PL/SQL语言初级教程之游标
查看>>
Oracle PL/SQL语言初级教程之操作和控制语言
查看>>
Oracle PL/SQL语言初级教程之过程和函数
查看>>
Oracle PL/SQL语言初级教程之表和视图
查看>>
Oracle PL/SQL语言初级教程之完整性约束
查看>>
PL/SQL学习笔记
查看>>
如何分析SQL语句
查看>>
结构化查询语言(SQL)原理
查看>>
SQL教程之嵌套SELECT语句
查看>>
几个简单的SQL例子
查看>>
日本語の記号の読み方
查看>>
计算机英语编程中一些单词
查看>>
JavaScript 经典例子
查看>>
判断数据的JS代码
查看>>
js按键事件说明
查看>>
AJAX 初次体验!推荐刚学看这个满好的!
查看>>