草庐IT

linux - 你能推荐一个很好的 linux 调试 malloc 库吗?

你能推荐一个很好的linux调试malloc库吗?我知道那里有很多选择,我只需要知道人们实际使用哪些库来解决现实生活中的问题。谢谢!编辑:我知道Valgrind,但有时性能真的太低了。 最佳答案 Valgrind.:-)它不是malloc库,但是,它非常擅长查找内存管理和内存使用错误。 关于linux-你能推荐一个很好的linux调试malloc库吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/

c - malloc(及其同类)返回的内存块是否初始化为零?

我写了一个代码来测试压力测试Linux和Windows操作系统的内存管理。为了进一步测试,我继续检查malloc()返回的内存中存在哪些值。返回的值都是0(零)。我已经阅读了malloc的手册页,在Windows和Linux上都进行了检查,但是我无法找出这种行为的原因。根据联机帮助页Themalloc()functionallocatessizebytesandreturnsapointertotheallocatedmemory.Thememoryisnotinitialized.要清除内存段,必须手动使用memset()。#include#include#include#inclu

c - malloc(及其同类)返回的内存块是否初始化为零?

我写了一个代码来测试压力测试Linux和Windows操作系统的内存管理。为了进一步测试,我继续检查malloc()返回的内存中存在哪些值。返回的值都是0(零)。我已经阅读了malloc的手册页,在Windows和Linux上都进行了检查,但是我无法找出这种行为的原因。根据联机帮助页Themalloc()functionallocatessizebytesandreturnsapointertotheallocatedmemory.Thememoryisnotinitialized.要清除内存段,必须手动使用memset()。#include#include#include#inclu

c - 从函数 readdir 释放(删除)分配的内存

我是在Linux环境下使用C编程语言来读取一个目录下的文件。我有包括#include在我的代码中,我正在使用函数readdir().根据Linux在线页面,它说不要调用free()在指向dirent的结果指针上结构,因为它可能分配在堆栈上。你能帮我理解它是如何工作的吗?我不明白为什么我们不必删除structdirent.什么时候删的,谁删的?Here是我正在谈论的摘录:Onsuccess,readdir()returnsapointertoadirentstructure.(Thisstructuremaybestaticallyallocated;donotattempttofree

c - 从函数 readdir 释放(删除)分配的内存

我是在Linux环境下使用C编程语言来读取一个目录下的文件。我有包括#include在我的代码中,我正在使用函数readdir().根据Linux在线页面,它说不要调用free()在指向dirent的结果指针上结构,因为它可能分配在堆栈上。你能帮我理解它是如何工作的吗?我不明白为什么我们不必删除structdirent.什么时候删的,谁删的?Here是我正在谈论的摘录:Onsuccess,readdir()returnsapointertoadirentstructure.(Thisstructuremaybestaticallyallocated;donotattempttofree

c - SECCOMP:如何模拟 malloc、realloc 和 free?

我想在我的服务器上执行任意(有潜在危险的)二进制文件。因此,我使用objcopy将“main”符号重命名为“other_main”,这样我就可以链接到我自己的小main函数中,该函数为RLIMIT_CPU设置适当的值,并且切换SECCOMP在调用other_main之前标记。到目前为止,我对这个解决方案非常满意。现在的问题是,第3方程序代码可能包含对malloc的一些调用,这可能会立即终止程序(不允许使用sbrk)。因此,我想在设置应该由malloc/realloc/calloc/free使用的SECCOMP之前预先分配一些合理大小的数组(例如20MB)。不幸的是,我不知道如何存档最后

c - SECCOMP:如何模拟 malloc、realloc 和 free?

我想在我的服务器上执行任意(有潜在危险的)二进制文件。因此,我使用objcopy将“main”符号重命名为“other_main”,这样我就可以链接到我自己的小main函数中,该函数为RLIMIT_CPU设置适当的值,并且切换SECCOMP在调用other_main之前标记。到目前为止,我对这个解决方案非常满意。现在的问题是,第3方程序代码可能包含对malloc的一些调用,这可能会立即终止程序(不允许使用sbrk)。因此,我想在设置应该由malloc/realloc/calloc/free使用的SECCOMP之前预先分配一些合理大小的数组(例如20MB)。不幸的是,我不知道如何存档最后

c - 使用execvp后如何释放malloc创建的内存?

在我的C程序中,我创建了一个子进程并在其中解析了一个字符串并创建了一个指针数组(使用malloc())用于将其传递给execvp()命令。但问题是,如何释放子进程创建的内存?execvp()运行新任务,可能返回也可能不返回。如果它没有返回,那么它就成功了,child死了(我不能真正使用free()命令)。如果失败则返回,然后继续执行下一行代码,这是释放内存的唯一机会吗? 最佳答案 你不需要。具体来说,如果您在调用exec()类型例程(例如,在您的情况下为execvp())之前在进程中分配内存,则与原始可执行文件被释放。这与一个进程退

c - 使用execvp后如何释放malloc创建的内存?

在我的C程序中,我创建了一个子进程并在其中解析了一个字符串并创建了一个指针数组(使用malloc())用于将其传递给execvp()命令。但问题是,如何释放子进程创建的内存?execvp()运行新任务,可能返回也可能不返回。如果它没有返回,那么它就成功了,child死了(我不能真正使用free()命令)。如果失败则返回,然后继续执行下一行代码,这是释放内存的唯一机会吗? 最佳答案 你不需要。具体来说,如果您在调用exec()类型例程(例如,在您的情况下为execvp())之前在进程中分配内存,则与原始可执行文件被释放。这与一个进程退

c - gdb:仅当调用函数不等于某个值时才会有条件地中断函数

在我的项目中,我有一个将调用malloc()的my_malloc()。我喜欢在gdb中设置条件断点,只有当malloc()的调用函数不等于my_mallc()时,gdb才会进入“gdb>”。这可能吗?目标是识别所有直接调用malloc()而没有通过my_malloc()的代码。 最佳答案 Iliketosetuptheconditionalbreakpointingdbsuchthatgdbwillbreakinto"gdb>"onlywhenthecallerfunctionofmalloc()isnotequaltomy_mal