先看gdb跟踪过程

Hardware watchpoint 3: pad_front

Old value = 4
New value = 15
breath_travel (pRoot=0x603030, pQueue=0x603010) at print_tree_final.c:206
206         if((qNode->blank == 1))
(gdb) n
228            if(pad_front == 0)   
(gdb) n
235                   char *old_buf=buf_branch;
(gdb) n
236                   printf("%*s%*d%*s",pad_front*pad_num," ",pad_num,qNode->t_node->value,(1+pad_front)*pad_num," ");
(gdb) n
238                   sprintf(new_buf,"%s","123");
(gdb) n
Hardware watchpoint 2: child_depth

Old value = 2
New value = 3355185
0x00007ffff7ade419 in memcpy () from /lib/libc.so.6

我很奇怪,为啥int child = 2的值会被sprintf语句改写,一直想不明白。搜索了下,发现new_buf没分配空间造成的,所以才会说memcpy内存复制错误,可能覆盖了其它数据区域。

我声明 new_buf方法是

char *new_buf;

改为

char *new_buf=(char*)malloc(100);

问题解决。怪不得数组初始化经常是

char buffer[1024];

这样的。应该是等同上面那句malloc语句。如果指针和数组没有初始化,就很可能覆盖了其它区域。

0x00007ffff7ade419 in memcpy () from /lib/libc.so.6相关推荐

  1. 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 获取 远程 目标进程 中的 /system/lib/libc.so 动态库中的 mmap 函数地址 )

    文章目录 一.获取 远程 目标进程 中的 /system/lib/libc.so 动态库中的 mmap 函数地址 二.从 /proc/pid/maps 文件中获取 指定 进程 中的 /system/l ...

  2. 【Android 逆向】Android 中常用的 so 动态库 ( /system/lib/libc.so 动态库 | libc++.so 动态库 | libstdc++.so 动态库 )

    文章目录 一.拷贝并分析 Android 中的 /system/lib/libc.so 动态库 二.拷贝并分析 Android 中的 /system/lib/libc++.so 动态库 三.拷贝并分析 ...

  3. 解决strings: '/lib/libc.so.6': No such file

    [root@uranuspreapp30 opt]# strings /lib64/libc.so.6 | grep GLIBC |tail -n 8 strings: '/lib64/libc.so ...

  4. arm-linux-gcc /lib/libc.so.6,链接器 – 找不到/lib/libc.so.6

    我正在交叉编译一个应用程序,但链接爆炸与它的错误 "cannot find /lib/libc.so.6". 它应该使用的libc.so.6位于/home/work/worldco ...

  5. 嵌入式linux开发,/lib/libc.so.6: version `GLIBC_2.17‘ not found (required by /.../lib/libpaho-mqtt3a.so.1)

    一.问题描述. 嵌入式linux开发,使用高版本交叉编译工具,编译应用程序,在arm板中运行提示:/lib/libc.so.6: version `GLIBC_2.17' not found (req ...

  6. memcpy的F libc : FORTIFY: memcpy: prevented异常分析处理

    在调试中遇到: 崩溃信息: --------- beginning of crash F libc    : FORTIFY: memcpy: prevented 4294967295-byte wr ...

  7. Linux下coredump调试1:使用

    李迟按: 调试是程序员的一项基本能力,经历过大大小小的实战,随着见识的增长,只要用心留意并做总结,相信调试的能力会越来越好.写程序不可能没有bug,只是bug容易不容易被发现,bug的危害大不大.笔者 ...

  8. 等号赋值与memcpy的效率问题

    转自:http://www.aiuxian.com/article/p-1309055.html 偶尔看到一个说法,说,小内存的拷贝,使用等号直接赋值比memcpy快得多.结合自己搜集到的资料,整理成 ...

  9. Linux中的libc和glibc

    一.libc库 Linux平台提供的C标准库包括: 一组头文件,定义了很多类型和宏,声明了很多库函数.这些头文件放在哪些目录下取决于不同的编译器,stdarg.h和stddef.h位于/usr/lib ...

最新文章

  1. mongodb php代码实例,MongoDB文档的更新(php代码实例)
  2. 【Linux】scp“免密” 远程copy较多文件
  3. [html] 如何在不同的端口间共享cookie?
  4. 抖音直播APP软件系统为什么能这么火?反映出的问题又会是什么?
  5. 【开发工具】【i2c-tools】I2C总线调试工具(i2c-tools)的安装与使用
  6. Linux基础学习记录
  7. 材料科学需要用计算机吗,计算机在材料科学中的运用分析
  8. DM7在linux下部署
  9. Undefined和Null的区别
  10. WPF - Visual调试工具Snoop
  11. AlertManager实现webhook告警(使用Postman测试)
  12. Win7电脑上如何增加磁盘分区?
  13. 【CV】FPN:用于目标检测的特征金字塔网络
  14. XTM计算机辅助翻译,计算机辅助翻译原理与实践
  15. 生成特定分贝的音频波形
  16. 在编写QT时出现:程序异常结束。 The process was ended forcefully.
  17. 【系统】WinXP/Win7x86/Win7x64 地址汇总 2014.7
  18. python五子棋小游戏程序源码
  19. php导出excel2007实例,php导入导出excel实例
  20. TeXstudio 文字下方全是红色波浪线

热门文章

  1. MS Sql Server查询数据库文件大小和剩余空间,数据库日志压缩
  2. 小路绫只会做料理 (ayaya)
  3. java基于springboot宠物医院管理系统
  4. 如何进行一次大批量部署服务器安装?
  5. H3C 交换常用命令
  6. Android的MVP设计架构:网络加载图片为例
  7. 2021知到答案,公共关系与人际交往能力(见面课答案).
  8. 极限发问,挑战文心一言底线
  9. 刘汝佳 语言篇(一)
  10. 5G MEC UPF选择及本地分流技术分析