Delphi2010でFastMMのフルデバッグモードを使用するには?

解決


ふろんてぃあ  2011-06-28 02:26:39  No: 40698

いつもお世話になっております。
Delphi2010+WindowsXP SP3で開発しております。

プログラムの実行中に『メモリが足りません』のエラーが出てしまった為、
メモリリークを調べようとFastMMを使用しています。
フルデバッグモードでないとメモリリークの箇所が分からなかったので

http://edn.embarcadero.com/article/33696

の記事を参考にフルデバッグモードの設定をしようとしたのですが
Delphi2010にて『スタックフレームの生成』『TD32デバッグ情報を含める』
をどこで設定して良いのかが分かりません。

http://vanillasky-room.cocolog-nifty.com/blog/2009/05/win324borlandco.html

の記事で設定方法の説明が細かく出ているのですが、どうもDelphi2006
での説明らしく、プロジェクトオプションの画面が違っているので
分かりませんでした。
また、記事によってはusesに追加するのも『ShareMem』や『FastMM4』
だったりしており何を追加すれば良いかが分かりません。
ちなみに、『FastMM4』をusesに追加した時はプログラムの終了時に
ダイアログが出たのですが、『ShareMem』の時には何も出ませんでした。

どなたかDelphi2010での設定方法が分かる方がいらっしゃいましたら
ご教授して頂けませんでしょうか。

以上、宜しくお願いいたします。


Mr.XRAY  2011-06-28 07:26:01  No: 40699

こんにちは,Mr.XRAYです.

>また、記事によってはusesに追加するのも『ShareMem』や『FastMM4』
>だったりしており何を追加すれば良いかが分かりません。

少なくとも,
http://edn.embarcadero.com/article/33696

の記事では,そういうことはないようですね.こちらを信用してみてはどうでしょう.

Delphi 2010では,設定の場所が違っているようです.
Windows XP(SP3) + Delphi 2010でも確認しました.FastMMは497です.
参考になれば.

[フルデバッグのログ出力例]
http://mrxray.on.coocan.jp/Delphi/Others/UsageFastMM.htm#05


Mr.XRAY  2011-06-28 07:27:37  No: 40700

追記です.
今回の動作確認では,DLLは,プロジェクトのフォルダにコピーして使用しています.


ふろんてぃあ  2011-06-28 23:56:43  No: 40701

Mr.XRAYさん

いつもHPを拝見させて頂いています。
返信して頂きありがとうございます。

Mr.XRAYさんのHPに載っている通りに
「コンパイル」「リンク」のデバック情報をTrueに設定し
フルデバック用のDLL(FastMM_FullDebugMode.dll)をプロジェクト
ファイルがあるフォルダに置いてみたのですがログが出力されません。
(usesは「ShareMem」で追加をしております。)

ちなみに、ログが出力される場所=DLLのある場所という認識だったのですが
私の認識は間違っていませんでしょうか?

ログが出力されないという事は何か設定が足りていなかったり、
確認したりする場所が他にもあるのでしょうか??
もし、何か思いあたる箇所があるようでしたら教えて頂けると助かります。

以上、宜しくお願い致します。


Mr.XRAY  2011-06-29 01:51:44  No: 40702

>ログが出力される場所=DLLのある場所という認識だったのですが

プロジェクトのフォルダ内だったと思います.
う〜ん,よく分かりませんね.

テストしたプロジェクトをUPします.確認してみてください.EXEは入っていません.
動作確認環境は,同じWindows XP(SP3) + Delphi 2010 Pro + FastMM497です.
使用したdllは,IDE用ですが,なぜかEXE実行でもログが出力されます.
プロジェクトは,フォームのサイズ,表示位置等は変更していますが,他のオプション
関係は,デフォルトのままとし,サイトの記事にある変更をしただけです.

なお,Delphi 2010には,BorlndMM.dllはありませんので,プロジェクトフォルダ内に
置いています.

http://mrxray.on.coocan.jp/Delphi/zipothers/FastMM4_FullDebugTest01.zip


Mr,XRAY  2011-06-29 01:55:10  No: 40703

>なお,Delphi 2010には,BorlndMM.dllはありませんので,プロジェクトフォルダ内に
>置いています.

以下の図1の説明を参照てす.
http://mrxray.on.coocan.jp/Delphi/Others/UsageFastMM.htm#fig1


ふろんてぃあ  2011-06-29 02:38:53  No: 40704

Mr.XRAYさん

素早い、返信ありがとうございます。
また、プロジェクトまでUPして頂き恐縮です。

結果から申し上げますと、バッチリ動作しました。
私がBorlndMM.dllの部分を見落としていた為に、動作していませんでした。
プロジェクトフォルダにBorlndMM.dllを入れただけで動作しましたので
凡ミスでお恥ずかしい限りです。。。

これで、メモリリークの本格的な調査が行えます。
本当に助かりました。
ありがとうございましたm(__)m


Mr.XRAY  2011-06-29 14:07:48  No: 40705

こんにちは.Mr.XRAYです.

>結果から申し上げますと、バッチリ動作しました。

よかったです.で,サイトのDelphi 2010, XEの追加記事の種明かしなんですが.
FastMM4_FAQ.txtに書いてあっただけなんです.
うーん,言わない方が格好つけていられたかな?


ふろんてぃあ  2011-06-29 20:59:23  No: 40706

Mr.XRAYさん

FastMM4_FAQ.txtにそんな事が書かれていたのですね。
先ほど見てみたのですが、英語が苦手なのでどこに書いてあるか
全然分かりませんでした^^;
私には解読が出来なかったので、解読できるMr.XRAYさんは素晴らしいと思います。
やっぱり、開発言語を扱うには英語が読めないと厳しいのですかね。。。


Mr.XRAY  2011-06-29 21:47:38  No: 40707

>やっぱり、開発言語を扱うには英語が読めないと厳しいのですかね。。。

このあたりは何とも言えません.
昔,外国のある会社の計測器を購入したら,マニュアルが英語だったので,
「日本で売る気があるなら,日本語のマニュアル出せ」
と言ったことがあります.

やっぱり種明かししなけりゃよかった.
ここは Q and A の場所なので,ここらへんで(笑)


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加