问题标签 [glibc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - 如何为旧的 linux 发行版构建应用程序,并避免 FATAL: kernel too old 错误?
我在 linux 上分发我的应用程序的静态链接二进制版本。但是,在使用 2.4 内核的系统上,我在启动时收到段错误,并显示消息:“致命:内核太旧。”
我怎样才能轻松地启动并运行 2.4 内核的版本?我需要的一些库甚至在 2003 年左右的旧 linux 发行版上都不可用。是否有 apt-get install 或其他可以让我轻松定位旧内核的东西?
c++ - 我可以在 windows 下使用 glibc 吗?
是否可以(或者是否可以)在 Windows 下使用 glibc(作为 msvcrt 的替代品)?我知道这是一个愚蠢的问题,会弹出像 cygwin 这样的答案,但我真的在问:是否可以在 windows 上链接到 glibc 并使用 msvcrt 之类的所有库函数?
linux - linux file 命令输出中的版本号字段是什么
如果我对在 Fedora Core 11 上编译的名为“version”的可执行文件执行以下命令,我会得到此输出
文件版本
版本:ELF 32 位 LSB 可执行文件,Intel 80386,版本 1 (SYSV),动态链接(使用共享库),用于 GNU/Linux 2.6.18,未剥离
2.6.18这个数字到底有什么意义,在向客户区分他们应该下载的某些软件的版本方面有什么用?
从我目前看到的情况来看,这个数字绝对不是
- 内核版本
- libc 版本
- 与 lsb_release 相关的任何事情
我想获得一些简单的标识符,让客户知道他们应该下载哪个二进制版本,理想情况下他们应该能够通过输入命令来识别(比如 uname -a,尽管在这种情况下显然不是那个) )。
谢谢
qt - 使用 qtconcurrent 生成异常并调用 QTime:currentTime
我似乎只使用使用 Qtconcurrent::run 创建的线程生成异常
我有一个名为 FPSengine 的类,它有一个名为 FPSengine::getData() 的方法,该方法由主线程和 3 个其他线程(2 个 QThreads 和 1 个使用 QtConcurrent::run())调用。在 FPSengine::getData() 内部,我调用 QTime::currentTime()。如果我从主线程或 QThreads 之一调用 FPSengine::getData() 我没有任何问题,但是当我从使用 Qtconcurrent::run() 创建的线程调用 FPSengine::getData() 时,有时会出现异常。Qtconcurrent 或 QTime:currentTime() 甚至 tzset (由 gdb 堆栈显示的 QTime::currentTime 调用)是否有问题?还是我的代码有问题。这是失败线程的堆栈信息:
0 raise /lib/libc.so.6 0
1 abort /lib/libc.so.6 0
2 ?? /lib/libc.so.6 0
3?? /lib/libc.so.6 0
4 免费 /lib/libc.so.6 0
5 ?? /lib/libc.so.6 0
6 tzset /lib/libc.so.6 0
7 QTime::currentTime() /usr/lib/libQtCore.so.4 0
8 FPSengine::xmitData FPSengine2.cpp 93
9 FPSengine: :getData FPSengine2.cpp 21
10 线程数据日志::运行线程数据日志.cpp 109
11 ?? /usr/lib/libQtCore.so.4 0
12 start_thread /lib/libpthread.so.0 0
13 克隆 /lib/libc.so.6 0 14 ?? 0
multithreading - *** 检测到 glibc *** 双重释放或损坏(fasttop):
对 QByteArray 的 clear 调用会产生以下异常:
* 检测到 glibc * /home/yan/FPS2/FPS2:双重释放或损坏(fasttop):
0 ?? 1??
2 免费
3 QByteArray::clear()
4 FPSengine::getDatagrams
5 FPSengine::xmitData
6 FPSengine::getData
7 threadDatalog::run
8 ??
9 start_thread
10 克隆
11 ?? 0
这是一个 qt 错误还是与我的代码有关?我知道 QObjects 不是线程安全的(QT 定义不是多个线程调用同一个对象实例的同一个函数),但我的函数有互斥锁。即使经常调用相同的函数,我也很少收到此错误。PS 防止这种情况的一种方法是 env var MALLOC_CHECK_ 0
这个 url 涉及一个类似的问题,一些帖子似乎暗示它是由不兼容的 glibc 版本引起的。
free - malloc 实现会将释放的内存返回给系统吗?
我有一个长期存在的应用程序,经常进行内存分配释放。任何malloc
实现都会将释放的内存返回给系统吗?
在这方面,以下行为是什么:
- ptmalloc 1、2(glibc 默认)或 3
- dlmalloc
- tcmalloc(谷歌线程 malloc)
- solaris 10-11 默认 malloc 和 mtmalloc
- FreeBSD 8 默认 malloc (jemalloc)
- 囤积malloc?
更新
如果我有一个应用程序的内存消耗在白天和夜间(例如)可能非常不同,我可以强制任何一个malloc
将释放的内存返回给系统吗?
如果没有这样的返回,释放的内存将被多次换出,但这样的内存只包含垃圾。
ruby - Ruby/Glibc coredump(双重释放或损坏)
我正在使用我自己用 Ruby 编写的分布式持续集成工具。它使用 Mike Perham 的“政治”的一个分支来分配任务。“politics”模块正在为 mDNS 部分使用线程。
我不时遇到一个我不明白的核心转储:
我在 Gentoo 上运行并使用“-gdbg”重建了 Ruby 和 Glibc,并关闭了条带化以获得有意义的核心:
唔???对我来说,这看起来完全是 Ruby 实习生。关于stackoverflow的其他“双重释放或损坏”问题,我已经看到线程可能是问题的一部分。
此外,问题不会发生在完全相同的位置。我有另一个更长的回溯,但崩溃也在其中,garbage_collect
但路径略有不同:
有没有人建议如何隔离并解决这个问题?
posix - pthread 函数“_np”后缀
“_np”后缀在这里是什么意思:
或在宏中
更新:
来自 glibc2.2
定义__USE_UNIX98
_NP 函数/宏的可移植性吗?
pthreads - 我可以将基于 futex 的互斥锁与 glibc-2.2 linuxthreads 互斥锁混合使用吗?
如果你不知道什么是futex和linuxthreads-0.9,请不要回复。
我可以将一个基于 futex 的互斥锁与来自 linuxthreads-0.8 或 -0.9 的互斥锁(在所有 glibc <=2.2 和所有 uClibc 中使用)混合在一起吗?
我需要进程间互斥锁(pshared 之一,PTHREAD_PROCESS_SHARED)。
那么,如果线程是由 linuxthreads pthread_manager 来启动和管理的,会不会被基于 futex 的 sleep 和 wake 混淆了呢?
我可以将基于 futex 的互斥锁用于进程间和线程间同步吗?