标签: glibc

内存损坏是由无效*读取*释放内存引起的吗?

我越来越

***glibc检测到***(/ my/program/...):malloc():内存损坏:0xf28000fa***

我在valgrind下运行,它报告了读取已被释放的内存的情况,但没有非法内存写入的情况.

读取释放的内存会导致内存损坏吗?如果没有,除了valgrind输出之外还有哪些建议?

c++ linux malloc valgrind glibc

2
推荐指数
1
解决办法
839
查看次数

LINUX/glibc的.我可以在信号处理程序中使用fprintf吗?

我可以fprintf(stderr)在glibc/linux的信号(SIGALRM)处理程序中使用吗?

linux signals glibc handler

2
推荐指数
2
解决办法
3785
查看次数

与我自己的glibc联系

我想为了学习目的对glibc做一些修改.但是,我想保持原始gcc设置不变.换句话说,对于通常的编译,我想使用当前在我的系统中的glibc,但对于某些程序,我想用我自己修改的glibc链接我的程序.如何为此目的编写Makefile?

c linux glibc

2
推荐指数
1
解决办法
239
查看次数

"C或gcc"就像"鸡肉还是鸡蛋"?:(

可能重复:
gcc/g ++是如何引导的?

我想知道gcc是如何编译的,因为我们都知道它是用C语言编写的.

他们是否使用其他编译器来提供gcc?

如果是这样,我可以使用相同的编译来编译我的C程序吗?

c glibc

2
推荐指数
1
解决办法
517
查看次数

php shell命令错误GLIBCXX_3.4.9未找到

我试图从PHP执行shell命令将文件转换为PDF格式但我得到此错误.
有人可以详细解释我如何解决它吗?
我在linux上不太好(
如果我直接通过终端执行命令一切正常.

    /usr/lib/libreoffice/program/oosplash: /opt/lampp/lib/libstdc++.so.6:
    version `GLIBCXX_3.4.9' not found 
    (required by /usr/lib/libreoffice/program/../ure-link/lib/libuno_sal.so.3)
Run Code Online (Sandbox Code Playgroud)

php linux ubuntu glibc libreoffice

2
推荐指数
1
解决办法
1462
查看次数

ftell(FILE*fd)和lseek(int fd,off_t offset,int whence)的结果之间的差异

考虑这个代码示例:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main()
{
    //this file exists and contains data: "ABCDEFGHIJKLM"
    FILE* file = fopen("file.txt", "r");
    char data[4];
    long int pos = ftell(file);
    fseek(file, 0, SEEK_SET);
    fread(data, 4, 1, file);
    fseek(file, pos, SEEK_SET);

    printf("ftell: %d\n", ftell(file));
    printf("lseek: %d\n", lseek(fileno(file), 0, SEEK_CUR));

    fread(data, 1, 4, file);

    //this correctly prints A
    //but external function needs fileno(file) that has wrong pos
    printf("%c\n", data[0]);

    fclose(file);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

该计划的结果令人惊讶:

ftell: 0
lseek: 14
A
Run Code Online (Sandbox Code Playgroud)

我正在尝试修复我的应用程序中的错误,但我确定前一段时间此程序的结果应该是0, 0(换句话说,从来没有在我的应用程序中出现此错误). …

c glibc libc

2
推荐指数
1
解决办法
770
查看次数

为什么存在系统调用

我一直在阅读系统调用及其在Linux中的工作方式.我仍然有更多的阅读要做,但有一件事,我已经读过的没有回答的是,为什么我们需要系统调用?

我知道系统调用是来自用户空间程序的请求,内核要做一些事情,但我的问题基本上是:为什么用户空间程序不能自己做呢?为什么Glibc不执行实际操作而不仅仅是作为系统调用的包装器?

例如,如果我调用fopen()我的程序,为什么glibc会调用open系统调用?为什么glibc本身不进行操作?

我明白这意味着glibc开发人员会有更多的工作,他们必须对Linux有一个深入的了解,但是glibc与Linux内核的关系是否已经非常密切了?

另外,我知道系统调用函数在CPU的0环上运行......但是真正重点是什么呢?如果我执行一个程序,我给它明确的运行权限,那么通过分离哪些代码可以在不同的上下文中运行来添加什么安全性,因为你还是给了它所有权限?

c glibc system system-calls linux-kernel

2
推荐指数
1
解决办法
533
查看次数

为什么在glibc中使用crypt导致编译器警告?

我尝试编译以下代码(最小例子,请参阅整个代码的编辑):

// a.c
#include <stdio.h>

#define _XOPEN_SOURCE
#include <unistd.h>

int main(int argc, char* argv[])
{
    puts((const char*) crypt("AAAA", "$6$2222"));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

使用clang-7 -lcrypt a.c并发出以下警告:

minimum.c:8:24: warning: implicit declaration of function 'crypt' is invalid in C99 [-Wimplicit-function-declaration]
    puts((const char*) crypt("AAAA", "$6$2222"));
                       ^
minimum.c:8:10: warning: cast to 'const char *' from smaller integer type 'int' [-Wint-to-pointer-cast]
    puts((const char*) crypt("AAAA", "$6$2222"));
         ^
2 warnings generated.
Run Code Online (Sandbox Code Playgroud)

./a.out似乎确实有效:

$6$2222$6GKY4KPtBqD9jAhwxIZGDqEShaBaw.pkyJxjvSlKmtygDXKQ2Q62CPY98MPIZbz2h6iMCgLTVEYplzp.naYLz1
Run Code Online (Sandbox Code Playgroud)

我发现如果我删除#include <stdio.h>puts喜欢这个:

// new_a.c
#define _XOPEN_SOURCE
#include …
Run Code Online (Sandbox Code Playgroud)

c crypt glibc clang compiler-warnings

2
推荐指数
1
解决办法
61
查看次数

在glibc的ld.so中禁用xsave

我想使用gdb的记录,但是因为glibc的ld.so使用xsave指令,所以出现错误“进程记录不支持地址0x7ffff7fe883c的指令0xfae64”。

多亏了stackoverflow的回答,我才能用二进制补丁修复类似的错误。运行半小时后,使用调试符号编译glibc失败,因此,如果有更快的解决方案,我将感到高兴。我从这里获得了一个编译版本,但似乎没有提供任何早期版本(即,我现在使用的是glibc 2.28.r502.g065957a3704-1和gdb 8.2.1)。如何使gdb录制工作?

assembly linker gdb glibc x86-64

2
推荐指数
1
解决办法
133
查看次数

__builtin_va_start在哪里定义?

我试图找到__builtin_va_start在GCC源代码中定义的位置,并查看其实现方式。(我一直在寻找va_start定义的位置,然后发现该宏定义为__builtin_va_start。)我cscope -r在GCC 9.1的源代码目录中使用它来搜索定义,但没有找到它。谁能指出该函数的定义位置?

gcc glibc

2
推荐指数
1
解决办法
168
查看次数