DBGMEM

ソフトウェアのスクリーンショット:
DBGMEM
ソフトウェアの詳細:
バージョン: 1.9.2
日付のアップロード: 3 Jun 15
開発者: Moser Michael
ライセンス: 無料
人気: 80

Rating: nan/5 (Total Votes: 0)

これは、現在唯一のLinuxで動作します。 DBGMEMはGNU劣等一般公衆利用許諾契約書の条項の下でリリースされています
このツールは、次のような問題を発見するのに役立ちます
  1。メモリリーク
  2。ヒープメモリの破損
  3。誤用、選択された標準ライブラリ関数に不正な引数。
  4。汚職スタック
  5。解放されたか、初期化されていないヒープメモリの使用。
  6。ツールを拡張することができ、追加のAPIの引数をチェック
このツールは、その機能を追加するためにGLIBCメモリ割り当て関数、メモリと文字列操作関数をオーバーライドします。
あなたには、いくつかの高度な機能を使用するためにプログラムを変更したい場合がありますがDBGMEMは、あなたのプログラムを変更する必要はありません。
DBGMEMは、CおよびC ++プログラムのためのオープンソースのメモリデバッガであり、Linuxオペレーティングシステムの下で動作し、GNU劣等一般公衆利用許諾契約書の下でリリースされています。 DBGMEMはGlibcの標準ライブラリのの部分にデバッグチェックを追加します。それは、デバッグプロセスのアドレス空間にロードされる共有ライブラリとして実装されています。
ツール
DBGMEMは、各デバッグプログラムにロードすることができ、いくつかのメモリデバッグツールを持っています。シンプルなツールは、すべての割り当てられたメモリ·ブロックを追跡し、そのようなブロックが割り当てられたメモリブロックに先行アリーナヘッダーに、割り当てられたときのスタックのようなブックキーピング情報を、追加します。それはまた、割り当てられたブロックの前後にガード単語を追加します。簡単なツールは、最良のメモリリークの問題を検出するために使用されます。アリーナヘッダがデバッグされているプログラムで破損することができますように。検査は匿名メモリマップファイルにスタックからすべてのブックキーピング情報を保持しました。これは、メモリの上書きバグに耐えることが、ツールがより堅牢になります。チェックツールもすぐにそのヒープブロック内に含まれるポインタ値のための任意のヒープブロックに関する情報を検索する機能を追加します。チェックツールは、これらの機能により、スマッシング可能スタックのための共通の文字列にパラメータやメモリ操作機能、およびチェックの検証を追加します。
動作モード
であるとして、あなたはデバッガでほとんどのプログラムを実行することができます。このツールは、特定のライブラリとリンクするデバッグプログラムを必要としません。ツールは、DLLインジェクションの技術によって確認されるプロセスのアドレス空間にロードされた共有ライブラリです。ダイナミックリンカーのLD_PRELOAD機能は、他のライブラリがロードされる前に、最初のライブラリを共有ツールをロードするために使用されます。メモリ割り当て、文字列操作関数は、傍受され、最初のツールライブラリから呼び出されます。これは、そのチェックを追加するためのツールを有効にします。さらに、デバッグプロセスの終了後に処理されている生のレポートが書かれているデバッグプロセスの実行時に、増補レポートは、未加工レポートに含まれるスタックトレースにシンボリック関数名を追加します。 gdbデバッガは、未加工レポートのさらなる処理中にシンボリックアドレスに数値アドレスをオンにするために使用されます。

特徴:

このメモリリーク。これは、チェックツールとシンプルなツールの両方に適用されます。このツールは、ブロックが割り当てられた時間で採取されたスタックトレースと一緒にそれぞれ割り当てられたヒープブロックを追跡します。さらに、整数タグは、この値は、ブロックが割り当てられた時間を特徴付ける論理期間/ `世代 'を追跡し、各割り当てに保たれています。ユーザによって要求されたときに、この情報の報告は、常にプロセスの終了時に生成され、又はされています。この情報は、インスタンスとメモリリークの原因を見つけるのに役立ちます。
初期化されていないヒープ·メモリーまたは解放されたヒープメモリの使用;これは、チェックツールとシンプルなツールの両方に適用されます。このツールは、バイト値0xDDとバイト値0xEEにすべて解放されたメモリにすべての新しく割り当てられたメモリを設定します。これらの値の使用は、通常、このメモリ領域は、ポインタが含まれている場合は、クラッシュにつながる価値0xDDDDDDDDとポインタの間接参照、エラーをプログラムにつながります。
ヒープメモリ破損。これは、チェックツールとシンプルなツールの両方に適用されます。メモリのためのツールのチェックが上書きされ、各ヒープブロックのメモリ接頭辞と接尾辞を配置することによって引き受け。サフィックスの値は、その後、変更された場合/を引き受けるヒープの上書きを検出します。
これは、 '' '' 'のチェックツール」に適用されます。 GLIBCとglibcのメモリコピー/ムーブ機能の文字列操作関数の使い方を誤ります。ツールが共通の標準ライブラリ関数の最初のパスを取得し、これらのチェック機能により破損がスタックは、関数は、既存の引数のヒープブロックを上書きしないことを確認します。それはまた、呼び出し元のスレッドのスタックが破損されないことが確認されます。

このリリースで新しい何が:

このようになりましCFLAGS環境変数を取得作ります
-ldlオプションを指定してdbgmemライブラリを構築
glibcのは、カーネルのバージョンに結婚しているとして、共有ライブラリは現在、LIB / $(のuname -r)ディレクトリに置かれます。
一部のシステムでは、フィックスコンパイル(ステップを設定します)
( - 一部のみの世代のためにスタックトレースを生成-m)スクリプトを実行するオプションを追加

このバージョン1.9.1の新機能です:

このスクリプトでは、更新させる、それが今、必要な内蔵設定を検出しようとします。今もかかわらず、automakeのを行うにはありませんか
固定GCC 2.9.6のためのCモードでコンパイルエラー。 GCCはまだ構築されたC ++モードで内部エラーでクラッシュ
追加オプション-g(C ++モードで[]削除/ []新しい/新しいmalloc関数/​​のペアリングのためのチェックを無効にし、フリー/削除)

このバージョン1.7の新機能です:

このフォークとexecコールを追跡-fオプションを追加した(フォーク/ execの中のような)
今レポートファイルのヘッダにデバッグプロセスのコマンドラインを出力します。
マップファイル名は現在のPIDが含まれています。
デフォルトでは、生のレポートファイルを削除します。それらのあまりに多くがあります。
はsprintfのすべての使用は、snprintfのに変更しました

同じようなソフトウェア

exude
exude

20 Feb 15

WingDBG
WingDBG

20 Feb 15

debug
debug

11 May 15

gDEBugger
gDEBugger

2 Jun 15

へのコメント DBGMEM

コメントが見つかりません
コメントを追加
画像をオンにする!