問題タブ [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 投票する
0 に答える
597 参照

xcode7 - NSBitmapImageRep のヒープ バッファ オーバーフローを示す Xcode 7 - bitmapData

Xcode 7 の新しい Address Sanitizer 機能を使用してアプリを実行しているときに、まったく理解できない問題が見つかりました。

NSImageこのようなものから中サイズ (588x375) のテクスチャを初期化しようとしています

実行がコード サンプルの最後の行にAsanDie達するとすぐに、次のスタック トレース (10.11.1 ベータ版を実行) でヒープ バッファー オーバーフローについて不平を言います。

この割り当てストラック トレースでは、次のようになります。

つまり、基本的に AppKit の内部に深く入り込んでいます。

問題が何であるかについてのアイデアはありますか..?

0 投票する
0 に答える
109 参照

xcode - プラグインのアドレスサニタイザーを有効にする

私が制御できないサードパーティ向けのプラグインを構築しています。このプラグインを使用して Xcode 7 で Address Sanitizer を使用したいと考えています。プラグインを正常にコンパイルしてインストールできます。問題は、それが機能していることを証明できないことです。サニタイザーが問題を検出することを確認するために、次のコードを含めています。

サードパーティのアプリケーションがプラグインをロードすると、予想されるクラッシュは発生せず、5 という数字がログに記録されます。

環境変数を使用してDYLD_PRINT_LIBRARIES_POST_LAUNCH、アドレスサニタイザーランタイムライブラリがロードされたことを証明しましたが、確かに次のとおりでした:

メインの実行可能ファイルがプラグインを使用していないときに、この診断ツールをプラグインで動作させる方法はありますか?

0 投票する
0 に答える
245 参照

macos - OS X ptrace で実行すると、clang アドレス サニタイザーでビルドされたバイナリが SIGTRAP で停止する

ptrace の制御下で、clang のアドレス サニタイザーでビルドされたバイナリを実行しようとしていますが、偽の SIGTRAP に問題があります。

私のプログラムは、標準的な方法で ptrace を使用しptrace(PT_TRACE_ME,...)ますexec。親は、呼び出しが行われたSIGTRAPことを示す in child を待機します。exec親はptrace(PT_CONTINUE,...)、子を実行するように設定します。

これはすべて、通常のバイナリでは問題なく機能します。一方、アドレスサニタイザーでビルドされたバイナリを実行するとPT_CONTINUE、プロセスを再開するために を実行した後、子プロセスは予期しない SIGTRAP をすぐに受け取ります。

これは、同様の方法で ptrace と対話する gdb を使用して実証できます。

簡単なテスト プログラムを作成します。

gdb で実行します。

(記号に関するメッセージは無視してください。)

プロセスはコード 062 で終了せず、SIGTRAP で停止したことに注意してください。

プロセスを実行するには、手動で続行します。

これはすべて対話型の使用には非常に適していますが、アドレス サニタイザーのビルドには特別な処理が必要になるため、自動テストには少し面倒です。可能であれば、すべてのビルド タイプで同じテスト プロセスを維持したいと考えています。

ここで何が起こっているか知っている人はいますか?

私はclang-700.1.76(Xcodeから)を使用しています。(そして gdb 7.9.1 (MacPorts から) - しかし、これは私自身のコードも影響を受けているため、より一般的な問題のように見えます。)

これを Linux (gcc 4.8.4/clang 3.8.0、gdb 7.7.1) で再現できませんでした。

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

c++ - Address Sanitizer: throw-catch および printf 使用時の「不明なアドレスの SEGV」

int や char const* などの何かをスローし、printf を使用してエラーを調べると、Address Sanitizer エラーが発生します。

ネット上で同様のものを見つけることができませんでした。私のコード例は非常に基本的であるため、エラーが発生する可能性があることを本当に理解していません.

削減されたコード サンプル:

コード実行時のコンソール出力:

-fsanitize フラグを無効にすると、Valgrind は次のヒントを提供します。

コンパイラ設定: 次のフラグを指定して Debian Jessie で clang 3.5.0-10 を使用する (Makefile からの抜粋):

何か案は?

0 投票する
0 に答える
875 参照

c++ - -lsupc++ および -stdlib=libc++ を使用した AddressSanitizer / LeakSanitizer エラーが、ストリームに書き込みを行う呼び出されていない仮想関数で発生する

次のコードは、Clang 3.5 を使用して Debian Jessie でコンパイルすると、 AddressSanitizer エラーをスローします。

リンクされたライブラリの組み合わせに関連しているように見えますが、インターネット上で同様のものを見つけることができませんでした.

エラーの再現

呼び出し:clang++ -stdlib=libc++ -lc++abi -fsanitize=address,vptr sample.cpp -lsupc++ -o sample

compile flag を省略する-lc++abiと、代わりにLeakSanitizer ランタイム エラーが発生します。

他のコンパイル フラグを省略した場合、エラーは発生しません。

エラーの原因は何ですか? 私のコードに何か問題がありますか、それともこれはコンパイル フラグの無効な組み合わせですか? もしそうなら、競合の原因は何ですか?

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

ios - SpriteKit でサニタイザーに対処する

Address Sanitizer を使用してアプリを診断しようとしています。アプリは非常にスムーズに実行されますが、メモリ割り当てなどに関する詳細なチェックのみが必要でした。アプリを実行すると、次のエラーが表示されます。Address Sanitizer を使用するのは初めてですが、私が知る限り、開発者のコ​​ード行の 1 つを指摘する必要があります。内部ライブラリでクラッシュするようです。アイデアや提案はありますか?

ここに画像の説明を入力

0 投票する
0 に答える
729 参照

ios - iOS デバイスのサニタイズ ランタイム エラーに対処する

xCode7 ビルド設定タップで、以下のようにフラグを追加します。

シミュレーターでは問題なく動作しますが、iOS デバイスでアプリを実行するとクラッシュします。エラー情報は次のとおりです。

dyld: ライブラリが読み込まれていません: @rpath/libclang_rt.asan_ios_dynamic.dylib 参照元: /var/mobile/Containers/Bundle/Application/6DFB6F58-A283-4F82-A4B5-903E12B7D0CA/EduLayout.app/EduLayout 理由: 画像が見つかりません。 /p>

では、どうすれば修正できますか?</p>