glibc相关内容

管道上的非阻塞读取

可以在管道上执行非阻塞I/O吗? fcntl无法设置O_NONBLOCK. Linux编程接口的第918页包括一个表“从管道或FIFO(p)读取n个字节的语义".下表列出了管道和FIFO的行为,其中标题为O_NONBLOCK的列已启用?这意味着您可以在管道上设置O_NONBLOCK标志.这样对吗?以下代码无法设置该标志,但是fcntl(2)不会报告错误. #include ..
发布时间:2020-04-23 10:57:12 服务器开发

内核空间中有一个libc吗?

内核空间中有一个libc吗?我的意思是您必须针对某些libc构建内核,对吗?那么,内核空间中是否存在一个libc(可能是静态链接的)? 如果是,这与userland glibc有什么关系?它们必须是同一版本吗? 解决方案 内核空间中实际上没有libc. Libc是用户空间库,您不能在内核空间中使用它. 但是移植了libc中几乎所有在内核空间中有意义的函数.通常,您可以在incl ..
发布时间:2020-04-23 10:38:19 服务器开发

GDB进入动态链接器(ld.so)代码

我想在我的普通 c 代码中使用ld.so代码。 我试图在 TUI 模式下通过GDB进行代码流可以看到代码和程序集。 为此,我还安装了 libc-dbg binutils-source 来自ubuntu软件包管理器的软件包。 GDB可以找到 ld.so 本身的调试符号,我可以在指令级使用 si 但我无法步入源代码级别,因为GDB无法找到 ld.so 的源代码并且显示无可用源代码。 如 ..
发布时间:2018-04-21 14:30:59 服务器开发

gdb反向调试avx2

所以我有一个支持avx2指令集的新型花式CPU。 这很好,但打破了gdb反向调试。当没有优化编译时,代码仍然使用共享库,例如调用memset(),然后调用memset的avx2优化版本。这很棒,但是gdb记录不支持avx2。 进程记录不支持地址0x7ffff690dd80的指令0xc5。 0xc5是vex前缀。 反向调试对于不支持avx2的cpu很有效。我如何获得libc等不使 ..
发布时间:2018-04-21 14:22:42 其他开发

无法为linux-vdso.so.1加载共享库符号。同时调试

不加载VDSO.so是使用gdb和glibc> 2.2时遇到的着名错误之一。 我发现计划在gdb 7.5.1中修复,但事实并非如此。 好​​的我在这里找到了一个解决方法这里 ,但我不明白它如何应用它。 操作系统:Arch Linux IDE:QT创建者3.0.82 /> 编译器:GCC 4.8.2 注意:我不确定是否违反了包括上面链接的规则 不加载VDSO.so是您在 ..
发布时间:2018-04-21 14:17:50 服务器开发

建立i386的crti.o

我正在尝试构建一个交叉编译器,x86_64是主机,i386是目标。我得到(所有常见的)crti.o:没有这样的文件错误。而不是从发行版中抓取已经构建的crti.o和crtn.o ...我怎么可以从glibc(或者可能是gcc)源代码中显式构建这些文件? FYI,我很清楚x86_64编译器的-m32选项。我宁愿只有一个32位编译器环境。另外,我不想使用任何gazillion已经构建的i386编 ..
发布时间:2018-04-21 11:21:22 其他开发

对象代码重定位和英特尔引脚交互

我正在开发一个多处理器架构模拟器,它使用Intel Pin来测试C ++可执行文件并报告有趣的事件(例如,某些函数调用,线程创建/完成等)。基本上,我构建了一个指令解码缓存,当它们的图像被加载时,所有的指令都被缓存,然后分析指令的执行。因此,映像加载时的指令地址在运行时与指令地址相同(或至少与指令地址同步更新)是非常重要的。 Intel Pin API(例如,IMG_AddInstrumen ..
发布时间:2018-04-21 11:02:49 C/C++开发

需要GLibc优化

为什么不可能重新编译GLibc关闭所有的优化(即-O0)? 特别是在这样做: make CFLAGS =' - O0 -w'CXXFLAGS =' - O0 -w' 我得到: #error“glibc无法编译而没有优化” 解决方案 如果您从字面上看只是Google的错误, a href =“http://devpit.org/wiki/Gn ..
发布时间:2018-04-21 10:56:38 其他开发

__USE_XOPEN2K8的用途以及如何设置?

我试图编译gtk堆栈(最后一个gtk2版本,2.24),并且我收到了一堆看起来相关的错误。也就是说,不能从string.h和time.h中找到 __ locale_t ,并且 LC_ALL_MASK 不能是(应该在locale.h中)。 我发现所有这些问题都与 __ USE_XOPEN2K8 不被#defined。什么是 __ USE_XOPEN2K8 for,以及如何设置它property ..
发布时间:2018-04-21 10:52:39 其他开发

glibc堆一致性检查

根据2008年的帖子(我现在找不到它), glibc堆检查在多线程环境中不起作用。现在是2010年的情况吗? 默认启用堆检查吗? (gcc 4.1.2)?我没有设置MALLOC_CHECK_,不知道调用mcheck(),但仍然有时会用backtrace获得双免费的glibc错误。也许它是由一些编译标志启用的? 解决方案默认情况下,不使用malloc_check_或mcheck ),glib ..
发布时间:2018-04-21 10:43:53 其他开发

在具有旧gcc / glibc / libstdc ++的计算机上运行使用gcc 4.7编译的C ++ 11可执行文件的问题

我是生产环境中的C ++编译的新手 我想知道是否在使用gcc版本的计算机上运行用gcc4.7编译的C ++ 11可执行文件(在debian 6上)时是否存在任何问题,旧的glibc / libstdc ++。 谢谢 编辑: 我想在我的问题中添加更多细节(也许最好打开一个新问题?) 我需要用新的在Debian 7(对于gcc 4.7)中的C ++ 11中的libs 并 ..
发布时间:2018-04-21 10:36:44 C/C++开发

在没有根的非标准位置构建具有glibc的GCC

我有一个系统,我没有root权限,但我需要安装当前版本的GCC(4.7.2)。 系统正在运行Linux 2.6.18的x86_64版本,并且已经有了GCC 4.1(即使--version说它是用它编译的,也没有C ++支持)。编辑5:在这一点上,下面的步骤只是我试过的一套。从那时起我已经开始几次清洁。我正在寻找一个人来详细说明我需要的所有开关的确切顺序。 这是我到目前为止所经历的过程( ..
发布时间:2018-04-20 17:38:40 服务器开发

为什么回溯不包含Objective-C符号而不管-rdynamic?

更新:我正在使用Linux上的GNU运行时。 更新2:我编译了GNU-在MacOS上运行,并用它构建示例。 GNU运行时在MacOS上发生错误 not 。我会说问题是glibc(因为 backtrace 和 backtrace_symbols 是glibc扩展名)。 使用 backtrace 和 backtrace_symbols ,我没有得到任何Objective-C符号。只有文件名 ..
发布时间:2018-04-20 17:35:16 移动开发

执行二进制:未找到'GLIBCXX_3.4.11'

我尝试运行一些预编译的代码,但出现以下错误: ./ bin / stipdet:/cm/shared/apps/gcc/4.3.4/lib64/libstdc++.so.6:版本'GLIBCXX_3.4.11'找不到(需要./bin/stipdet) 我搜索了这个错误,看到有些人通过删除 libstdc ++。so.6 并添加一个指向 usr / local / lib 的 ..
发布时间:2018-04-20 17:27:04 服务器开发