問題タブ [address-sanitizer]

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 に答える
361 参照

xcode - no_sanitize は Xcode でサポートされていませんか?

Xcode 7.xに同梱されているclangバージョンで特定の機能のアドレスサニタイザーを無効にする方法を知っている人はいますか? 関数属性 no_sanitize(..) がサポートされていないようですが、何か見落としがありますか?

LLVM 3.7.0 ベースの XCode 7.0.2 (clang-700.1.81) を使用しています。

http://llvm.org/releases/3.7.0/tools/clang/docs/AttributeReference.html#no-sanitize-clang-no-sanitize

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

c - gcc 4.8でビルドするときにアドレスサニタイザーでビルドしているかどうかを検出する方法は?

私は C で書かれたプログラムに取り組んでおり、基本的にバグをキャッチするためにアドレスサニタイザーを使用して構築することがあります。プログラムは、起動時にログにバナーを出力し、ビルド者、ビルドされたブランチ、コンパイラなどの情報を表示します。バイナリがアドレスサニタイザーを使用してビルドされているかどうかも詳しく説明するとよいと思いました。 . __has_feature(address_sanitizer) があることは知っていますが、それは clang でしか機能しません。次の簡単なプログラムを試しました。

でビルドするとgcc -Wall -g -fsanitize=address -o asan asan.c、次の結果が得られます。

私はclang -Wall -g -fsanitize=address -o asan asan.c得る:

__has_feature に相当する gcc はありますか?

アドレスサニタイザーで構築されたプログラムの巨大なVSZ値のように、コンパイル時の定義などがあるかどうか疑問に思っているだけで、チェックする方法があることを私は知っています。

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

c - Valgrind の代替として Address Sanitizer を使用する

Address Sanitizer が valgrind の代わりに利用できることを読みました。それに入るために、私は簡単な例から始めました。以下のコードを use_after_free.c に記述しました。

次のライブラリをインストールしました:

次に、次のコマンドを使用してコードをコンパイルしました。

上記のコマンドを使用して作成されたバイナリを実行すると、アドレス サニタイザーからのエラーが予想されました。しかし、エラーなしで出力を取得しています。私のアプローチに何か問題がありますか?

編集:ubuntu 12.04、llvm 3.1、およびclang 3.1を使用しています

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

colors - Address Sanitizer 出力の色を無効にする

Asan の端末カラー出力を無効にする機会はありますか? どのフラグを渡しても、端末のカラーコードが出力されます。

私が試した引数:

何が恋しいですか?オフにするために使用できる API はありますか?

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

gcc - 32 ビット モードのアドレス サニタイザーを備えた大きな共通ブロック

このサンプルに縮小できる従来の Fortran コードに問題があります。

サブルーチンがプログラムから呼び出されることはないことに注意してください。これを 64 ビット マシンでコンパイルして実行すると、次のようになります。

gfortran バージョン:

AA(私のテストでは)のサイズを 1 減らすと、問題が解消されます。制限サイズは、システムや状況によって異なる場合があります。

私が見る限り、共通ブロックのサイズは 2GB には遠く及ばず、問題が発生すると予想-m32されます。これはアドレスサニタイザーの制限ですか? この問題を回避するために使用できるコマンド ラインまたはランタイム トリックはありますか?

編集:おそらく共通ブロックとは関係ありませんが、共通ブロック内の配列は使用されなくても割り当てられるという事実とは関係ありません。これにより、同じ問題が発生します。

割り付け可能な配列の制限は、静的配列のほぼ 8 倍であることに注意してください。

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

ios - 「メモリ履歴」コマンドとは正確には何ですか?

要約: メッセージを受け取りました:

AddressSanitizer debugger support is active. Memory error breakpoint has been installed and you can now use it in the 'memory history' command.

" " コマンドとは何ですかmemory history? また、正確にはどのように使用しますか?

詳細:

  • クラッシュの原因となったメモリ警告のあるコードが少しありました。
  • 「スキームの編集」>「実行」>「アドレスサニタイザーを有効にする」に移動して、アドレスサニタイザーをオンにしました。
  • 電源を入れて同じコードを再度実行すると、クラッシュは発生しなくなりましたが、メッセージが表示されました。

それは何を意味し、メモリ履歴コマンドとは正確には何ですか? どうやって使うの?検索しましたが、私の質問に答えるものは見つかりませんでした。

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

clang - サニタイザーの警告に対処する

数日間、Xcode 7.3 内で Address Sanitizer を起動すると、次の問題が発生します。Sanitizer が問題を検出したときに Xcode コンソールに出力されたエラー メッセージ (実際にはファイルによって抑制されていた):

==13392==警告: fd 55 でシンボライザーに書き込めません

==13392==警告: fd 55 でシンボライザーに書き込めません

==13392==警告: fd 55 でシンボライザーに書き込めません

==13392==警告: fd 55 でシンボライザーに書き込めません

==13392==警告: 外部シンボライザーの使用と再起動に失敗しました!

リポジトリでエラー メッセージを見つけましたが、何が起こっているのか説明できません。明らかに内部書き込み機能は失敗しますが、何が原因なのかわかりません。何か案は?

https://github.com/Microsoft/compiler-rt/blob/master/lib/sanitizer_common/sanitizer_symbolizer_process_libcdep.cc#L100

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

ios - XCode AddressSanitizer の結果の解釈

私は最近、XCode 7 で導入されたと思われる XCode AddressSanitizer の使用を開始しました (たとえば、 Apple WWDC プレゼンテーションを参照)。サニタイザーは実際に問題を発見しましたが、それが何を意味するのか理解するのに苦労しています.

AddressSanitizer が報告できるエラーの種類の概要とその説明を知っていますか?

私の特定のケースでは、エラーは iOS ライブラリの奥深くで報告され、最終的には私のコードに起因します。

報告されたエラーは次のとおりです。

この特定のエラーの意味を知っている人はいますか?