glibc相关内容

MIPS寄存器$ 0可以用于存储和检索值吗?

当我了解MIPS处理器时,它被深深地吸引住了,读取$ 0寄存器总是返回0,而写入$ 0总是被丢弃.从MIPS程序员手册中: 2.13.4.1 CPU通用寄存器 [...] r0硬接线为值 零,可用作任何其指令的指令的目标寄存器 结果将被丢弃.当零时,r0也可以用作源 值是必需的. 由此可知,or $0,$r31,$0指令是无操作的. 想象一下,当我看到ELF MIPS二进制文件的 ..
发布时间:2020-05-09 23:05:48 其他开发

"glibc free():下一个大小(快速)无效"在vector.push_back上?

当我运行程序时,它有时会崩溃并出现以下错误: " 检测到glibc /pathtoexecutable:free():无效的下一个大小(快速)" 回溯导致一个成员函数,该成员函数仅调用向量的push_back函数- void Path::add(Position p) {path.push_back(p);} 我已经尝试过搜索错误,并且绝大多数问题是人们分配的内存太少.但是,如何在 ..
发布时间:2020-05-08 21:40:31 C/C++开发

“损坏的双链表"是什么意思

我最近从我的PHP中收到以下错误: WARNING: [pool www] child 42475 said into stderr: "*** glibc detected *** php-fpm: pool www: corrupted double-linked list: 0x00000000013fe680 ***" 我对这个问题不太感兴趣,对修复它也不太感兴趣. 但是我对理解 ..
发布时间:2020-05-08 21:29:16 其他开发

不同程序是从公共堆还是从单独的堆中获取内存?

我有点困惑linux上的glibc如何将其内存分配给各种程序.这些是几个问题: 它是从公共堆中分配的(即是否有公共堆 跨Linux中的所有进程)还是分配了一个堆 系统中的每个进程. 还假设如果我正在编译一个静态库,并且它最终被静态链接到主进程,它将如何获取其内存?它是否已经与其他一些堆链接(如我们已经编译的那样),或者将从主进程的堆中获取其内存. 解决方案 在libc意义上 ..
发布时间:2020-05-05 12:34:31 服务器开发

malloc_trim(0)释放线程竞技场的Fastbins?

在过去一周左右的时间内,我一直在研究内存使用量随时间累积的应用程序中的问题.我将其范围缩小到可以复制 的行 std::vector > > > > > 在工作线程中(我意识到这是组织内存的荒谬方式).通常,工作线程会被破坏,重新创建,并在启动时由该线 ..
发布时间:2020-05-05 12:31:51 C/C++开发

malloc实现是否将释放的内存返回给系统?

我有一个长期使用的应用程序,它经常进行内存分配-释放.任何malloc实现都会将释放的内存返回给系统吗? 在这方面, 的行为是什么 ptmalloc 1、2(默认为glibc)或3 dlmalloc tcmalloc(谷歌线程malloc) solaris 10-11默认的malloc和mtmalloc FreeBSD 8默认malloc(jemalloc) Ho积malloc ..
发布时间:2020-05-05 12:28:10 其他开发

在C中取消定义类似函数的宏?

我正在尝试对glibc进行一些修改,我想知道是否可以重新定义类似函数的宏? 例如,具有以下宏: #define expm1(Val) __TGMATH_UNARY_REAL_ONLY (Val, expm1) 如何将expm1重新定义为: #define expm1(Val) __TGMATH_UNARY_REAL_IMAG (Val, expm1, ce ..
发布时间:2020-05-05 09:18:09 其他开发

在python中使用特定语言环境对字符串进行排序的列表

我在使用不同语言文本的应用程序上工作,因此,出于查看或报告目的,某些文本(字符串)需要以特定语言进行排序. 当前,我有一个变通方法,搞砸了全局语言环境设置,这很糟糕,我不想将其投入生产: default_locale = locale.getlocale(locale.LC_COLLATE) def sort_strings(strings, locale_=None): i ..
发布时间:2020-05-03 03:52:38 Python

Linux内核中libc.so.6的相关性

我的问题是Linux内核是否包含libc.so.6?仔细研究并浏览不同的链接后,我们发现libc.so.6不是Linux内核的一部分,因为内核具有相同的库,供内核空间使用. libc.so.6是一个用户空间库.但是,仍然有一个问题,如果从"/lib"中删除了libc.so.6,它将崩溃,因为Linux的所有基本应用程序都崩溃了. 因此,剩下的基本问题是: Linux是否可以在没有lib ..
发布时间:2020-05-02 03:31:08 服务器开发

glibc应用程序会保留未使用的内存,直到退出前

我有一个在Linux(Centos 7)上运行的C ++应用程序(gcc 4.9.1,glibc 2.17).它使用各种第三方库,尤其是Boost 1.61.在应用程序运行时,我可以通过htop的VIRT和RES列或ps命令等来观察其内存使用情况稳定增长.如果我让它运行足够长的时间,它将占用大量内存并淹没该盒子. 听起来像是泄漏,但是它通过valgrind泄漏了仅几个字节,所有这些都在我期望的位 ..
发布时间:2020-05-01 10:20:13 服务器开发

为系统调用编写glibc api

可能重复: 需要有关glibc源的帮助 我了解如何在linux内核中实现我们自己的系统调用.我知道我们可以在c程序中使用syscall()或_asm()来调用它. 但是我想了解如何为这个新的系统调用编写glibc api?. open()和read() glibc函数如何调用映射到内核中的系统调用? char message[ ] = "Hello!\n"; ..
发布时间:2020-05-01 10:04:02 服务器开发

转移到其他Linux构建系统时,出现错误:未定义的符号:stat

这可能只是我要迁移到的构建系统的问题,但我将介绍两个系统之间的差异以及我如何遇到此问题. 我的旧构建系统是一台SLES 10机器. gcc/cpp/g ++版本为4.1.0 我的新系统在SLES 11 SP4上,并且gcc/cpp/g ++版本是4.3.4. 我正在建立一个共享库;在新系统上构建和链接工作正常.但是,在新系统上加载时,我得到以下信息: error ./mys ..
发布时间:2020-05-01 10:00:30 服务器开发

了解gnu libc的strcmp函数

这是我在 glibc中找到的strcmp函数: int STRCMP (const char *p1, const char *p2) { const unsigned char *s1 = (const unsigned char *) p1; const unsigned char *s2 = (const unsigned char *) p2; unsigned char ..
发布时间:2020-05-01 09:54:34 服务器开发

删除符号链接libc.so.6后如何恢复?

在我们的服务器中,到libc.so.6的符号链接已被删除.现在,系统中的所有二进制文件都不起作用.为了解决这个问题,我尝试: /bin/ln -s /lib/libc-2.11.3.so /lib/libc.so.6 如预期的那样,它给了我 /bin/ln: error while loading shared libraries: libc.so.6: cannot o ..
发布时间:2020-05-01 09:28:07 服务器开发

如何为旧的Linux发行版构建应用程序,并避免发生FATAL:kernel too old错误?

我在Linux上分发了我的应用程序的静态链接二进制版本.但是,在具有2.4内核的系统上,我在启动时遇到段错误,并显示消息:“致命:内核太旧". 如何轻松启动并运行2.4内核的版本?我需要的某些库甚至在2003年左右的旧linux发行版中都不可用.是否有apt-get安装程序或使我可以轻松地针对较早内核的东西? 解决方案 最简单的方法是简单地安装 VirtualBox (或类似的东西, ..
发布时间:2020-05-01 09:18:43 服务器开发

建议执行系统库调用的源代码级调试的方法是什么?

我需要调试系统库中的某些调用,以了解这些调用之间的差异以及一个或另一个失败的原因. 现在,Linux发行版通常提供剥离的系统库和单独的调试符号文件.例如,/lib/libc-2.8.so去除了符号,留下了名为.gnu_debuglink的节,其中包含用于查找单独的调试文件的信息.单独的调试文件可通过调试包安装,并包含gdb所需的符号信息.在 http://www.technovelty.or ..
发布时间:2020-05-01 09:12:44 服务器开发