valgrind相关内容

无效异常展开导致的崩溃?

我正在调试在我们的一项测试中发生的崩溃.我们有一个用 C++ 编写的 ODBC 驱动程序,正在使用我们的测试工具(称为“Touchstone")通过 iODBC 进行测试,该工具也是用 C++ 编写的. 我已经使用 Oracle Solaris Studio 12.4(不是 GCC)在 Solaris 10 (x86) 上以 64 位模式编译了所有三个. 只有在 Touchstone ..
发布时间:2021-09-15 20:45:45 C/C++开发

valgrind 错误“大小 4 的无效读取";

这是我的程序 int* fun1(void){整数 n=9;int *pf=&n;cout 程序的编译和运行不会出现任何问题,但使用 valgrind 时会出现消息/警告“大小 4 的无效读取". 欢迎任何解决警告的帮助 解决方案 n是fun1()中的局部变量,退出函数后不再有效. ..
发布时间:2021-09-15 20:45:42 C/C++开发

Valgrind 缺失错误

(原帖在这里) 考虑以下明显有缺陷的程序: #include int main(){char string1[10] = "123456789";char *string2 = "123456789";strcat(string1, string2);} 并假设编译它: gcc program.c -ggdb 并在其上运行 valgrind: valgrind --track-or ..
发布时间:2021-09-15 20:45:34 其他开发

Valgrind 内存泄漏可达

不断获取 printf 和 scanf 语句的可访问内存泄漏.我需要完全没有泄漏.当我运行报告时,它说我在打印语句和扫描语句中获得了可到达的泄漏.我的问题是如何修复泄漏? 这是 valgrind 报告: kidslove-MacBook:src kidslove$ valgrind --leak-check=full --show-leak-kinds=all ./a.out ==6 ..
发布时间:2021-09-15 20:45:31 其他开发

简单 C 字符串函数上的 Valgrind 错误

让我们考虑这个简单的测试程序: #include #include int main(int argc, char *argv[]){字符缓冲区[256];国际我;strcpy(buf,"Hello world!");我 = strlen(buf);printf("字符串长度为 %d.\n",i);返回0;} 在使用 Intel C++ 编译器并打开优化 (O3) 对其进行编译时,我从 val ..
发布时间:2021-09-15 20:45:28 其他开发

Valgrind:致命错误:memcheck.h:没有那个文件或目录

我们正试图在 Valgrind 报告的 C++ 项目中追踪条件跳转或移动取决于未初始化的值.发现中提供的地址并没有真正的帮助,因为它指向 GCC 扩展程序集块的末尾,而不是导致问题的实际变量. 根据 Valgrind's 用 Valgrind 消除未定义的值,最简单的方法,我们可以在包含 后使用 VALGRIND_CHECK_MEM_IS_DEFINED 或 VALGRIND_CHECK_V ..
发布时间:2021-09-15 20:45:25 C/C++开发

Valgrind 报告“线程 #1 中的 brk 段溢出";

我想知道这条消息意味着什么: ==18151== 线程 #1 中的 brk 段溢出:无法增长到 0x4a26000 请注意,代码运行良好且输出正确.我应该忽略这条消息吗?这是什么意思? 解决方案 我认为你可以忽略它.我在一些似乎完美运行的代码中的新分配中收到了消息,我也在以下代码中收到了消息: #include 构造东西{东西():a1(0),b1(0){}无符号短a1;无符号短 b ..
发布时间:2021-09-15 20:45:22 C/C++开发

将 Valgrind 限制为特定功能

我有一个大程序要运行.使用 valgrind 需要几个小时才能运行.我听说有一些东西可以让我们为程序中的特定函数调用 valgrind.其余程序将正常执行(没有 valgrind env).任何人都可以帮我解决这个问题.我尝试通过互联网搜索它,可能是我错过了要搜索的词. 解决方案 这完全取决于您要使用的工具.对于 callgrind(valgrind 中的分析器),有一个选项 --togg ..
发布时间:2021-09-15 20:45:19 其他开发

Valgrind 显示调用 pr_set_ptracer 时出错,vgdb 可能会阻塞

我正在使用 Valgrind 来查找我的 C 程序的内存泄漏,尽管它看起来运行良好并显示分配和释放的内存.但是,我想知道它为什么会抛出这个错误以及它的后果是什么. 这里是错误的片段: ==483== Memcheck,一个内存错误检测器==483== 版权所有 (C) 2002-2017,以及 GNU GPL,由 Julian Seward 等人所有.==483== 使用 Valgrind ..
发布时间:2021-09-15 20:45:16 其他开发

如何让valgrind忽略某些行?

例如 ==26460== 在丢失记录 2 of 105 中 1 个块中的 2 个字节仍然可以访问==26460== 在 0x4C28BE3:malloc (vg_replace_malloc.c:299)==26460== by 0x580D889:strdup(在/usr/lib64/libc-2.17.so 中)==26460== 由 0x4F50AF: init (init.c:468)= ..
发布时间:2021-09-15 20:45:13 其他开发

分段错误 - strcat

这是我的代码: #include#include#includevoid main(int arge, char *argv[]){文件 *f1;char ch,*fn="~/lyrics/";strcat(fn,argv[1]);strcat(fn,".txt");if( (f1 = fopen(fn,"r"))==NULL ){printf("\n错误的文件名\n%s 未找到",argv[1 ..
发布时间:2021-09-15 20:45:10 其他开发

地址 0x0 未被堆栈、malloc 或(最近)释放

我对 C 很陌生,似乎无法弄清楚以下代码有什么问题. int main() {char filen[] = "file.txt";FILE *file = fopen ( filen, "r" );如果(文件!= NULL){字符行[128];while ( fgets ( line, sizeof line, file ) != NULL )/* 读取一行 */{国际我;字符 *结果;for( ..
发布时间:2021-09-15 20:45:07 其他开发

无论如何,是否有 valgrind 消息“条件跳转或移动取决于未初始化的值"?可能是所谓的“误报"

我在这里找到的大多数问题都提供了一段代码,并由指出实际错误的人回答.我的问题是关于一般未初始化值的条件跳转.我可以理解,如果确定此分配仅完成一次并且在程序的生命周期内可能需要,则不必在程序结束时清除一块内存.据我所知,当程序终止时,GType 系统会留下大量未释放的内存.这些未释放的块可以被视为“误报".但是“有条件跳转或移动未初始化的值"会是误报吗?我唯一能想到的是有人通过读取随机地址来实现(坏 ..
发布时间:2021-09-15 20:45:01 C/C++开发

在 linux 上查找泄漏的 valgrind (memcheck) 的替代方法?

我有一个使用各种第三方共享对象库的 linux x86 应用程序.我怀疑这些库正在泄漏​​内存(因为它不可能是我的代码;-) 我尝试了可信赖的 valgrind,但它死得很惨,因为 其中一个第三方库正在使用一个晦涩的 x86 指令,该指令valgrind 没有实现. 我发现了对 DUMA 的建议 和试一试(使用 LD_PRELOAD 技术在运行时引入 DUMA),但它中止了对未通过 D ..
发布时间:2021-09-15 20:44:58 服务器开发

如何使用 Valgrind 调试堆栈覆盖错误?

我只是花了一些时间来追查一个错误,归结为以下问题.代码错误地覆盖了堆栈,我认为它覆盖了函数调用的返回地址.返回后,程序将崩溃并且堆栈将被破坏.在 valgrind 中运行程序会返回一个错误,例如: vex x86->IR:未处理的指令字节:0xEA 0x3 0x0 0x0==9222== valgrind:地址 0x4e925a8 处的指令无法识别. 我认为这是因为返回跳转到一个随机位置,其中 ..
发布时间:2021-09-15 20:44:55 其他开发

安装valgrind,启动时出现致命错误

我正在安装 Valgrind,但遇到一些问题.我的平台信息: Linux xx-ThinkPad-X61 3.2.0-39-generic-pae #62-Ubuntu SMP Wed Feb 27 22:25:11 UTC 2013 i686 i686 i386 GNU/Linux 我按照valgrind文件夹中README文件的安装说明进行安装../configure ->make -> ..
发布时间:2021-09-15 20:44:52 其他开发

未初始化的值是由堆栈分配创建的

==13890== 条件跳转或移动取决于未初始化的值==13890== 在 0x4E7E4F1:vfprintf (vfprintf.c:1629)==13890== 由 0x4E878D8: printf (printf.c:35)==13890== 由 0x400729: main (001.c:30)==13890== 未初始化的值是由堆栈分配创建的==13890== 在 0x400617: ..
发布时间:2021-09-15 20:44:49 其他开发