Mac OS 10.11.1 'El Capitan' で Valgrind 3.11.0 を使用しているときに見られる明らかな無限ループの問題について、できるだけ多くの情報を収集しようとしています。
valgrind
LLDB でプログラムを実行するか、プログラムの実行にアタッチしてからvalgrind
プロセスを停止すると、次のようなバックトレースが表示されます。
* スレッド #1: tid = 0x24ab4, 0x000000010805920b, 停止理由 = シグナル SIGSTOP * フレーム #0: 0x000000010805920b フレーム #1: 0x0000000108040dda フレーム #2: 0x00000001080b6790 フレーム #3: 0x00000001080b2fd3 フレーム #4: 0x00000001080b7c25 フレーム #5: 0x00000001080b6113 フレーム #6: 0x00000001080b3cd0 フレーム #7: 0x00000001080c54d9
これらのフレームがどのオブジェクトに対応しているかを知るにはどうすればよいですか?
プロセスを試しvmmap
てみましたが、情報が表示されません。特に、dylibs がプロセスのメモリにマップされたアドレス範囲を通常表示する「プロセスの書き込み不可領域」セクションは空白です。
$ vmmap -v 21729 プロセス: memcheck-amd64-darwin [21729] パス: /usr/local/Cellar/valgrind/3.11.0/lib/valgrind/memcheck-amd64-darwin ロードアドレス: 0x100000000 識別子: memcheck-amd64-darwin バージョン: ??? コードタイプ: X86-64 親プロセス: bash [11895] 日時: 2015-11-30 11:52:16.392 -0500 打ち上げ時間: 2015-11-30 11:51:53.557 -0500 OS バージョン: Mac OS X 10.11.1 (15B42) レポートのバージョン: 7 分析ツール: /Applications/Xcode.app/Contents/Developer/usr/bin/vmmap 分析ツールのバージョン: Xcode 7.1.1 (7B1005) ---- プロセス 21729 の仮想メモリ マップ (memcheck-amd64-darwin) 出力レポート形式: 2.4 -- 64 ビット プロセス VM ページ サイズ: 4096 バイト ==== プロセス 21729 の書き込み不可領域 領域タイプ 開始 - 終了 [ VSIZE RSDNT DIRTY SWAP] PRT/MAX SHRMOD PURGE 領域の詳細 ==== プロセス 21729 の書き込み可能領域 領域タイプ 開始 - 終了 [ VSIZE RSDNT DIRTY SWAP] PRT/MAX SHRMOD PURGE 領域の詳細 ==== 凡例 SM=共有モード: COW=copy_on_write PRV=プライベート NUL=空 ALI=エイリアス SHM=共有 ZER=zero_filled S/A=shared_alias PURGE=パージ可能モード: V=揮発性 N=不揮発性 E=空 それ以外の場合はパージできません ==== プロセス 21729 の概要 (ヌル)