`

awk: malloc(): memory corruption 错误

XP 
阅读更多
问题如下:
*** glibc detected *** awk: malloc(): memory corruption: 0x080c67f8 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xb7e35356]
/lib/tls/i686/cmov/libc.so.6[0xb7e3655a]
/lib/tls/i686/cmov/libc.so.6(realloc+0x10b)[0xb7e3875b]
awk[0x80569d5]
awk[0x805430a]
awk[0x805453c]
awk[0x805465e]
awk[0x8054a11]
awk[0x804dec1]
awk[0x804ce0d]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe0)[0xb7ddf450]
awk[0x8048fa1]
======= Memory map: ========
08048000-0805e000 r-xp 00000000 08:02 7468 /usr/bin/mawk
0805e000-08060000 rw-p 00015000 08:02 7468 /usr/bin/mawk
08060000-080e6000 rw-p 08060000 00:00 0 [heap]
b7c00000-b7c21000 rw-p b7c00000 00:00 0
b7c21000-b7d00000 ---p b7c21000 00:00 0
b7dbc000-b7dc6000 r-xp 00000000 08:02 10377 /lib/libgcc_s.so.1
b7dc6000-b7dc7000 rw-p 0000a000 08:02 10377 /lib/libgcc_s.so.1
b7dc7000-b7dc9000 rw-p b7dc7000 00:00 0
b7dc9000-b7f12000 r-xp 00000000 08:02 2372 /lib/tls/i686/cmov/libc-2.7.so
b7f12000-b7f13000 r--p 00149000 08:02 2372 /lib/tls/i686/cmov/libc-2.7.so
b7f13000-b7f15000 rw-p 0014a000 08:02 2372 /lib/tls/i686/cmov/libc-2.7.so
b7f15000-b7f18000 rw-p b7f15000 00:00 0
b7f18000-b7f3b000 r-xp 00000000 08:02 6015 /lib/tls/i686/cmov/libm-2.7.so
b7f3b000-b7f3d000 rw-p 00023000 08:02 6015 /lib/tls/i686/cmov/libm-2.7.so
b7f52000-b7f54000 rw-p b7f52000 00:00 0
b7f54000-b7f55000 r-xp b7f54000 00:00 0 [vdso]
b7f55000-b7f6f000 r-xp 00000000 08:02 70920 /lib/ld-2.7.so
b7f6f000-b7f71000 rw-p 00019000 08:02 70920 /lib/ld-2.7.so
bfc1e000-bfc33000 rw-p bffeb000 00:00 0 [stack]

经过多次的调试,发现是由于访问array类型的数据时引起的问题。 array中可能存在元素没有值或者初始化,比如 array[100]没有赋值(或分配内存空间),如果程序访问array[100]时,就会导致内存溢出错误。

一般初始化array的值,就不会出现这类问题了。 不初始化会导致内存溢出out of bound,所以会memory corruption。因为awk中NUL和0是一样的,如果不初始化的话,整数类型的array中的空值为NUL,而不是0。 如果printf NUL,打印结果为0。

并且在awk中空值NUL或者空格,与0比较的话是小于0的。
BEGIN{
	p =" "
}
END{
	if(p < 0)
	     printf(" print: p%s p", p);
}

打印结果为: print: p  p





分享到:
评论

相关推荐

    awk学习awk学习awk学习awk学习

    ### awk学习要点详解 #### 一、awk简介与基本用法 **awk** 是一种强大的文本处理工具,常用于Linux/Unix系统中进行数据提取、分析及格式化工作。其名称来源于三位创建者:Alfred Aho、Brian Kernighan 和 Peter ...

    awesome-awk:精选的 AWK 框架、库、软件和资源列表

    awk 脚本指南通过两个简单的教程提高您的 awk 技能 文档Gawk:有效的 AWK 编程Gawkinet:与 Gawk 的 TCP/IP 互联手册页: mawk , gawk 图书有效的 awk 编程:通用文本处理和模式匹配sed 和 awk AWK 编程语言AWK ...

    awk:AWK编程语言(AWK程序设计语言,awkbook)

    《AWK:编程语言与程序设计》 AWK是一种强大的文本分析工具,它以其独特的语法和功能在系统管理员和程序员中备受青睐。AWK的名字来源于它的三位创始人——Alfred V. Aho、Peter J. Weinberger和Brian W. Kernighan...

    Effective AWK Programming:Awk 编程的经典著作

    5. **高级技巧**:讲解AWK的高级特性,如自定义记录格式、多维数组、条件表达式以及错误处理。这些技巧可以帮助开发者编写更复杂和高效的AWK程序。 6. **实际应用示例**:书中包含大量实用示例,覆盖了数据分析、...

    vue-tawk:塔克包装纸

    Vue-Tawk 塔克包装纸 这个Vue插件将tawk.io实例注入到您所有的vue实例中 安装 npm install vue-tawk --save or yarn add vue-tawk -D 用法 初始化 首先,您需要注册插件其次,您应该拥有一个的帐户 import Tawk ...

    JSON.awk:用AWK编写的实用JSON解析器

    JSON.awk 用awk编写的实用JSON解析器。介绍JSON.awk是一个独立的单文件程序,没有任何外部依赖关系。 它类似于 ,这是用Bash编写的JSON解析器-于2013-03-13检索以构成JSON.awk的基础。 从那时起,这些项目便分开了...

    awk_tawk:关于AWK多么令人敬畏的闪电演讲,特别是对AWK编程语言的回顾

    awk_tawk 介绍AWK的出色表现,包括对AWK编程语言的回顾 还包括一个用AWK编写的演示工具。 吃自己的狗食或什么! SS=1 awk -f ./present.awk slides.txt ...其中SS可以选择提供起始幻灯片编号。 按下Enter键即可...

    redis-awk:awk 的 redis 客户端绑定(尤其是 gawk)

    介绍Redis 客户端绑定, awk的 GNU 实现。 它的特点包括无全局变量污染具有可变长度参数列表的方便函数,尽管有限支持多个redis连接警告!!! 由于awk/gawk不是为处理二进制数据而设计的,因此在 Redis 服务器中...

    awk:一个真正的awk

    一个真正的awk 这是Al Aho,Brian Kernighan和Peter Weinberger(Addison-Wesley,1988年,ISBN 0-201-07981-X)在AWK编程语言中描述的awk版本。版权版权所有(C)Lucent Technologies 1997 版权所有特此授予为免费...

    awk:我学习的AWK脚本。 大多数脚本来自http

    AWK是一种强大的文本分析工具,它在Linux和Unix环境中广泛使用。AWK的名字来源于它的创始人——Alfred V. Aho、Peter J. Weinberger和Brian W. Kernighan的首字母。这个工具允许用户通过模式匹配来处理文本,非常...

    intellij-awk:[WiP] AWK缺少的IntelliJ IDEA语言支持插件

    智商[WiP] 缺少的IntelliJ IDEA语言支持插件动机目前没有IDEA的AWK插件,这很遗憾。 有兴趣提高我的Java技能并学习一些IDEA内部知识。目标v0.0.1 支持基本的AWK代码突出显示支持基本的AWK代码导航(转到声明,显示...

    bib.awk:用awk编写的书目经理

    bib.awk 用awk编写的书目经理就像一样,但是更好。 最小(仅要求POSIX兼容的awk ) 在crossref和Google Scholar上搜索BibTeX 动态创建和修改Bib文件自动和手动重命名元数据并将其编码为pdf文件创建,查看和编辑子库...

    asciimation-starwars-awk:Simon Jansen 的 ASCIIMATION Star Wars 在 AWK 中的实现

    基于 AWK 的 ASCIIMATION 星球大战这是 Simon Jansen 的 ASCIIMATION Star Wars 基于 AWK 的播放器用法简单地称这个坏男孩如下: $ ./asciimation.awk data/sw1.txt执照asciimation.awk 在 MIT 许可下发布sw1.txt 由...

    awk.Effective.awk.Programming.Universal.Text.Processing.and.Pattern.Matching.4th

    - **日志文件分析**:使用awk可以快速从大量日志文件中提取关键信息,进行错误排查或性能分析。 - **配置文件生成**:基于模板文件自动批量生成服务器配置文件。 - **数据分析**:对收集到的数据进行清洗、转换或...

    ipawk:awk(gawk)在shellbash中与ip一起使用的某些功能

    ipawk #awk(gawk)的某些功能可与Shell / bash中的ip,net,子网一起使用 确保使用gawk | nawk(不是mawk)mawk ### awk -W版本 gawk | nawk ### awk -V 在代码中包含ipawk函数CUR_IP =“ 192.168.1.1/24” awk -...

    awk-lesson:awk简介

    awk 使用which命令检查是否已安装awk : $: which awk您应该会得到如下内容: /usr/bin/awk如果您没有安装awk ,可以获取。 volcano_observations.dat包含以下几行(请尝试使用cat volcano_observations.dat查看它)...

    Awk 个人笔记.docx

    在`Awk`中,错误处理通常是通过条件判断实现的,例如,检查某个变量是否为空或者值是否在预期范围内。 5. **正则表达式匹配**: `Awk`支持正则表达式,可以用来匹配和查找特定模式。例如,`=~`操作符用于测试字符...

    awk源码及windows下64位和32位编译说明

    4. 安装awk:编译成功后,使用`make install`命令将编译好的awk程序安装到指定的目录,通常是`C:\Program Files\`或者`C:\MinGW\bin\`。 5. 验证安装:在命令行输入`awk -v version`,如果显示awk的版本信息,说明...

    fields.awk:用 bash shell 和 awk 脚本编写的平面文件数据库程序。-开源

    Fields.awk 允许用户在他们的家用计算机或带有 bash shell 终端模拟器的移动设备上创建和使用中小型数据库。 它可以在任何与 bash shell 兼容的操作系统上运行,包括 Linux、FreeBSD、MacOSX 和 Android。 某些可选...

Global site tag (gtag.js) - Google Analytics