問題タブ [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.

0 投票する
1 に答える
4207 参照

linux - O_CREAT を開く | Linux の NFS で O_EXCL?

Linux 2.6 カーネルと NFSv3 でopen("fname", O_CREAT|O_EXCL)有効になったのはいつですか? 現在の標準的なopen(2)システム コールのドキュメント ( http://www.kernel.org/doc/man-pages/online/pages/man2/open.2.html ) には、すべて問題ないと書かれています。

これは、すべての 2.6 カーネルに問題がないかのように見えますが、man ページの変更ログ(ca late kernel 2.6.23) は、2.6.0 が公開されてから4 年後に有効性を示し始めており、Web には、この 1 年以内にこの使用を非難するボード ユーザーがあふれています。または2つ。このセットアップを RHEL 5 (2.6.18) システムで使用したいのですが、本当に安全になったかどうかを特定できませんでした。誰も決定的な答えを持っていますか?

0 投票する
6 に答える
42174 参照

linux - Linuxの静的リンクは死んでいますか?

実際、 Linux の-static gcc フラグは現在機能しません。GNU libc FAQ から引用させてください。

2.22. 静的にリンクされたプログラムでさえ、私には受け入れられない共有ライブラリが必要です。私に何ができる?

{AJ} NSS (詳細については、「info libc "Name Service Switch"」と入力してください) は、共有ライブラリがないと正しく動作しません。NSS では、プログラムを再リンクすることなく、1 つの構成ファイル (/etc/nsswitch.conf) を変更するだけで、さまざまなサービス (NIS、ファイル、db、hesiod など) を使用できます。唯一の欠点は、静的ライブラリが共有ライブラリにアクセスする必要があることです。これは、GNU C ライブラリによって透過的に処理されます。

解決策は、--enable-static-nss を使用して glibc を構成することです。この場合、サービスの dns とファイルのみを使用する静的バイナリを作成できます (これについては /etc/nsswitch.conf を変更します)。これらすべてのサービスに対して明示的にリンクする必要があります。例えば:

このアプローチの問題点は、NSS ルーチンを使用するすべての静的プログラムをそれらすべてのライブラリとリンクする必要があることです。
{UD} 実際、このオプションでコンパイルされた libc が NSS を使用しているとは言えません。もうスイッチはありません。したがって、システム上のプログラムの動作に一貫性がなくなるため、 --enable-static-nss を使用しないことを強く お勧めします。

その事実に関して、Linuxで完全に機能する静的ビルドを作成する合理的な方法はありますか、または静的リンクはLinuxで完全に機能しませんか? 私は静的ビルドを意味します:

  • 動的ビルドとまったく同じように動作します (動作に一貫性のない static-nss は悪です!)。
  • glibc 環境と Linux バージョンの合理的なバリエーションで動作します。
0 投票する
1 に答える
15739 参照

linux - 依存する glibc (glibcxx) バイナリのバージョンを確認する方法は?

glibc (そして、私の知る限り、glibstd++ も) がシンボルのバージョン管理メカニズムを使用していることはよく知られています。(詳細については 、特定の glibc バージョンにリンクするにはどうすればよいかを参照してください。)

問題は、GLIBC と GLIBCXX の正確なバージョンを決定する方法であり、libc と libstdc++ からの名前のリンカによって選択されますか? たとえば、次のようなものを取得する方法は次のとおりです。

なぜ私たちはこれが必要なのですか?必要な glibc/libstdc++ のバージョンを最小限に抑えたい場合に役立つように思えます。

0 投票する
1 に答える
6783 参照

linux - glibcが検出したのは...httpd:ダブルフリーまたは破損とはどういう意味ですか?

私はserverfault.comでこの質問をしました。これは、より適切な場所として提案されています-https ://serverfault.com/questions/169829/what-does-glibc-detected-httpd-double-free-or-corruption-平均


画像のアップロードを処理するために使用するEC2サーバーを実行しています。ローカルディスクからサーバーへのアップロードを処理するフラッシュswfがあります-約130枚の画像(合計約650MB)をアップロードしているときに、約45枚目の画像の後にサーバーログファイルに次のエラーが発生しました。

*glibcが検出されました* /usr / sbin / httpd:ダブルフリーまたは破損(!prev):0x85a6b990 ***

このエラーはどういう意味ですか?

サーバーが応答を停止したので、再起動します。この問題の原因をどこから見つければよいですか?

ありがとう

いくつかの情報-

Apache / 2.2.9(Unix)DAV / 2 PHP / 5.2.6 mod_ssl / 2.2.9 OpenSSL/0.9.8bで構成されたFedora8

0 投票する
2 に答える
2626 参照

linux - 異なる glibc ライブラリを使用して Linux で C プログラムをコンパイルする

glibc-2.3.4 を搭載した Linux ベースのファイアウォール アプライアンスがあり、そのためのプログラムをコンパイルするための gcc がありません。別の Linux マシンでプログラムをコンパイルすると、次のようなエラー メッセージが表示されます。

glibc.xxx が必要

そのバージョンのglibc用に別のLinuxマシンでacプログラムをコンパイルするにはどうすればよいですか?

0 投票する
1 に答える
1027 参照

regex - 繰り返される部分文字列を検出するための正規表現は遅いです

asciiでエンコードされたビットの文字列で繰り返される部分文字列を検出するGNU拡張正規表現を考え出そうとしています。私はうまくいく表現を持っています - ある種。問題は、多くの解を持つ可能性のある文字列を指定すると、実行が非常に遅くなることです

表現

([01]+)(\1)+

コンパイルは高速ですが、文字列に対する実行には約 1 分かかります

1010101010101010101010101010101010101010101010101010101010

glibc 2.5-49 の正規表現実装を使用しています (CentOS 5.5 に付属しています)。

FWIW、pcre ライブラリは、gregexp や perl のように、すばやく実行されます。したがって、明らかな、しかし間違った答えは「libpcreを使用する」です。プロジェクトに新しい依存関係を簡単に導入できません。CentOS/RHEL に付属する std C ライブラリ内で作業する必要があります。

0 投票する
1 に答える
5784 参照

python - 「glibc が検出されました *** python: malloc(): メモリ破損」をデバッグする方法

Cコードを埋め込むために、scipy.weaveでpython2.5を使用しています。

私のCコードにはmalloc()関数はありませんが、次のようなエラーを受け取りました

時々(ランダムなアルゴリズムです)

では、どのようにデバッグすればよいでしょうか。

ありがとう

0 投票する
3 に答える
1126 参照

objective-c - -rdynamicに関係なく、バックトレースにObjective-Cシンボルが含まれないのはなぜですか?

更新: LinuxでGNUランタイムを使用しています。この問題は、Appleランタイムを使用するMacOSでは発生しません。

アップデート2: MacOSでGNUランタイムをコンパイルし、それを使用してサンプルをビルドしました。GNUランタイムのMacOSではエラーは発生しません。問題はglibcにあると思います(backtracebacktrace_symbolsはglibc拡張機能であるため)。

とを使用してGCCでコンパイルされたObjective-Cアプリでバックトレースを印刷するbacktracebacktrace_symbols、Objective-Cシンボルが表示されません。ファイル名、アドレス、およびC記号のみが表示されます。

でコンパイルし-gてリンクしまし-rdynamicた。

私のテストアプリ:

そしてそれは出力です:

このバックトレースにObjective-Cシンボルを表示させる方法はありますか?

0 投票する
2 に答える
18093 参照

c - *** glibc が検出されました *** free(): 無効な次のサイズ (高速) -- 動作するはずですか?

私は既存の c プロジェクト (sourceforge の spglib) に取り組んでおり、いくつかの配列の初期化をクリーンアップした後、次の問題が発生しています。

* glibc が検出されました * tests/spglibtest: free(): 次のサイズが無効です (高速): 0x08ab46e0 ***

バックトレースは次のとおりです。

エラーは、以下の「free(trans)」行にあります。

get_translation は次のように値を trans に割り当てます。

get_translation で配列に書き込むと、Valgrind は次のように表示されます。

これは、trans に割り当てられたメモリの最後を超えて書き込もうとしているが、trans[0][0] に書き込んでおり、trans の次元が [2][3] であることを示唆しています。これはうまくいくはずです、AFAIK、私が見逃しているものを見ることができますか?

0 投票する
1 に答える
139 参照

debian - eglibc のビルド時にワイルドカードを設定するにはどうすればよいですか?

ソースから eglibc-2.11.2 パッケージをビルドしようとしています。愚かであろうとなかろうと、私はそれを Debian Lenny にバックポートしようとしています。これは主に、システム全体を安定版からアップグレードしなくても、それを必要とする他のものを構築できるようにするためです。(これが良いアイデアかどうかは、読者の課題です。) 私は sid の Debianized ソースを使用しています。

dpkg-buildpackage を実行するとパッケージがビルドされますが、dh-shlibdeps を実行すると最終的に次のエラーが発生します。

(残念ながら、screenトラブルシューティング セッション中にエラー メッセージがバッファからスクロールアウトしてしまったため、少し言い換えています。これは長いビルドです。)

もちろん、他のパッケージが古くなっている可能性は十分にあります。バックポートから debhelper を更新したので、バージョン 8.0 になりましたが、役に立ちませんでした。このエラーを解決するにはどうすればよいですか?