libc相关内容

需要在GDB中加载共享库的调试符号

我正在使用gdb调试一个使用libp线程的程序。有一个错误 发生在pthREAD_CREATE中,需要进入该函数。不幸的是,当我调试我的程序时,它不能正确地加载共享库符号,所以我不能跳过源代码并有意义地检查程序行为。这是我启动gdb时的输出。 Remote debugging using 127.0.0.1:21293 warning: limiting remote suggested p ..
发布时间:2022-08-29 14:01:57 其他开发

Libc如何共享库加载到内存中并在进程之间共享?

我想了解Libc如何共享库加载到内存中并在进程之间共享?是否有一个加载到内存中并在所有进程之间共享的libc实例,或者是每个进程的内存中的每个libc实例。我不清楚如何在进程之间共享libc。 谢谢 Aditya libc 推荐答案的一个实例在所有进程之间共享。参见"The Inside Story On Shared Libraries And Dynamic Loading" ..
发布时间:2022-04-15 17:22:52 其他开发

SIG_DFL到底是做什么的?

sig_dfl(信号的默认处理程序)到底做什么?我对调试SIGTSTP很感兴趣。它在奇怪的条件下会有轻微的行为不端。如果其中一个线程处于TASK_INTERRUPTBLE状态,我怀疑它在做一些奇怪的事情。 sig_dfl源代码在哪里?Libc? 谢谢。 推荐答案 SIG_DFL(信号的默认处理程序)到底做什么? 它的作用与预期完全相同:通知内核给定信号没有用户信号处理 ..
发布时间:2022-03-07 19:04:52 服务器开发

C逐行读取文件

我写了这个函数来从文件中读取一行: const char *readLine(FILE *file) {如果(文件 == NULL){printf("错误:文件指针为空.");退出(1);}int 最大线长度 = 128;char *lineBuffer = (char *)malloc(sizeof(char) * maximumLineLength);if (lineBuffer == NU ..
发布时间:2022-01-31 09:47:18 其他开发

用于嵌入式系统的小型 libc

我正在寻找一个小型 libc,用于在 ARM7 微控制器上与 freertos 一起使用.我看过 newlib,但它对我的需要来说有点太复杂了.Newlib 调用 malloc() 在一些函数(例如 printf()),这对于小型嵌入式实时系统来说并不好. 有谁知道适合我的应用程序的小型、可移植、开源的 libc 实现吗? 解决方案 PDCLib 可能 满足您的需求.仍然不完整 [断 ..
发布时间:2022-01-25 12:23:47 其他开发

静态链接系统库、libc、pthreads,以帮助调试

我试图避免 Stackoverflow 条目中描述的情况:调试客户盒子上生成的核心文件.如果我静态编译所有库,我会避免在核心转储时始终收集共享库吗?我基本上想处于一种可以使用 gdb 加载核心文件并检查崩溃的应用程序的情况. 如果我走静态链接我们需要的所有库的路线,我应该注意什么.我认为 glib 和 pthreads 可能会导致最大的问题. Valgrind 会不再有用吗?如果我针对 ..
发布时间:2022-01-20 20:30:17 服务器开发

让 GCC 编译而不插入对 memcpy 的调用

我目前正在使用为 PowerPC 440 编译的 GCC 4.5.3,并且正在编译一些不需要 libc 的代码.我没有直接调用 memcpy(),但编译器似乎在构建过程中插入了一个. 有 -nostdlib、-nostartfiles、-nodefaultlibs 等链接器选项,但我无法使用它们,因为我没有进行链接阶段.我只是在编译.像这样: $ powerpc-440-eabi-gcc ..
发布时间:2022-01-17 08:56:22 其他开发

获取 C 中的时区 GMT 偏移量

我正在使用标准 mktime 函数将 struct tm 转换为纪元时间值.tm 字段在本地填充,我需要将纪元时间设为 GMT.tm 有一个 gmtoff 字段,允许您为此目的以秒为单位设置本地 GMT 偏移量. 但我不知道如何获取该信息.当然一定有一个标准函数可以返回偏移量吗?localtime是怎么做到的? 解决方案 我想我应该在提问之前做更多的搜索.原来有一个鲜为人知的 tim ..
发布时间:2022-01-16 18:49:50 其他开发

替换非常慢的 pow() 函数

我们有一个 CFD 求解器,在运行模拟时,发现它在某些机器上运行异常缓慢,但在其他机器上却没有.使用 Intel VTune,发现以下行是问题(在 Fortran 中): RHOV= RHO_INF*((1.0_wp - COEFF*EXP(F0)))**(1.0_wp/(GAMM - 1.0_wp)) 用 VTune 钻取,问题被追踪到 call pow 组装线,当追踪堆栈时,它显示它正在使 ..
发布时间:2022-01-14 09:43:55 其他开发

未找到 GLIBC_2.7

尝试运行多个可执行文件时出现以下错误: /lib/libc.so.6:未找到版本“GLIBC_2.7"(.tools/bridge/bridge 需要) 我最近从 CentOS 5.3 升级到 5.7(我需要在 CentOS 5 上运行这些工具,所以我无法升级到 6).我重新编译了整个代码,但仍然出现这个错误. 有人遇到过这种错误吗? 谢谢,克劳迪乌 解决方案 这个错误的意 ..
发布时间:2022-01-13 21:20:55 其他开发

信号 11 (SIGSEGV),代码 1 (SEGV_MAPERR)

我正在使用 OpenGL 在 Android 上创建 2D 游戏.目前我正在多台设备上测试和调试游戏.我面临的问题是可怕的“信号 11"错误. 当我在我的三星 Galaxy Nexus 上玩游戏时,一切都很顺利,我可以玩几个小时而不会出现任何错误.我的 Nexus 正在运行 Android 4.0 Ice Cream Sandwich. 现在,当我在其他设备上运行它时,我收到了这个信号 ..
发布时间:2022-01-12 16:14:56 移动开发

使用 printf 和 ld 链接程序?

在使用 NASM 构建定义自己的 _start 而不是 main 的汇编程序时,我得到了一个 undefined reference to _printfx86-64 Ubuntu 构建命令: nasm -f elf64 hello.asmld -s -o 你好你好.ohello.o:在函数“_start"中:hello.asm:(.text+0x1a): undefined refer ..
发布时间:2022-01-11 15:40:49 服务器开发

如何链接到不同的 libc 文件?

由于版本差异,我想与我的程序一起提供共享库,而不是使用目标系统的. ldd 说我的程序使用了这些共享库: linux-gate.so.1 =>(0xf7ef0000)**(内核制作)**libc.so.6 =>/lib32/libc.so.6 (0xf7d88000)**(libc-2.7.so)**/lib/ld-linux.so.2 (0xf7ef1000)**(ld-2.7.so)* ..
发布时间:2022-01-11 15:07:59 其他开发

链接旧版本的 libc 以提供更大的应用程序覆盖率

Linux 二进制文件通常动态链接到核心系统库 (libc).这使得二进制文件的内存占用非常小,但依赖于最新库的二进制文件不会在旧系统上运行.相反,链接到旧库的二进制文件将在最新系统上愉快地运行. 因此,为了确保我们的应用程序在分发期间具有良好的覆盖率,我们需要找出我们可以支持的最旧的 libc 并将我们的二进制文件链接到它. 我们应该如何确定可以链接到的最旧版本的 libc? ..
发布时间:2022-01-11 14:50:12 服务器开发

C 中的 stdlib 和彩色输出

我正在制作一个需要彩色输出的简单应用程序.如何让我的输出像 emacs 和 bash 一样着色? 我不关心 Windows,因为我的应用程序仅适用于 UNIX 系统. 解决方案 所有现代终端模拟器都使用 ANSI 转义码来显示颜色和其他内容. 不用担心库,代码很简单. 更多信息在这里. C 中的示例: #include #define ANSI_COLOR_RED " ..
发布时间:2021-12-29 22:19:42 其他开发

fread/fwrite 将大小和计数作为参数的基本原理是什么?

我们在这里讨论了为什么 fread() 和 fwrite() 为每个成员指定一个大小并计算并返回读取/写入的成员数量而不是不仅仅是获取缓冲区和大小.我们可以想出的唯一用途是,如果您想读/写一个结构数组,这些结构不能被平台对齐整除,因此已被填充,但不能如此普遍以保证这种选择在设计中. 来自fread(3): 函数 fread() 读取 nmemb 元素的数据,每个 size 字节长,从流 ..
发布时间:2021-12-29 12:20:41 其他开发

不使用 libc 编译

我想在没有 (g)libc 的情况下编译我的 C 代码.如何停用它以及哪些功能依赖于它? 我试过 -nostdlib 但它没有帮助:代码是可编译和运行的,但我仍然可以在我的可执行文件的十六进制转储中找到 libc 的名称. 解决方案 如果你用 -nostdlib 编译你的代码,你将无法调用任何 C 库函数(当然),但你也没有得到常规的 C 引导代码.特别是,Linux 上程序的真正入 ..
发布时间:2021-12-18 22:51:29 其他开发

如何使用调试版的 libc

问题的简短版本:如何让 gdb 使用 libc 的调试符号? 更长的版本:我正在使用 gdb 调试程序,我想查看有关 libc 使用的 futex 的信息.但是,在调试过程中的某个时刻,我得到如下输出: Catchpoint 2(调用 syscall futex),0x00007ffff772b73e in ??() 来自/lib/libc.so.6(gdb) bt#0 0x00007ff ..
发布时间:2021-12-03 13:47:18 服务器开发