MS VC++ では、WinNTのみ互換の下記ライブラリがあります。
---
『MSDNライブラリ Visual Studio 6.0』 より
int _heapwalk( _HEAPINFO *entryinfo );
ヒープ内を移動し、次のエントリに関する情報を返します。
int _heapchk( void );
ヒープの一貫性をチェックします。
---
UNIX C でこの様なライブラリはあるのでしょうか?
よろしくお願い致します。
=============================
YOS.I
E-Mail : qwq1...@nifty.ne.jp
=============================
In article <bdilr8$ged$1...@news511.nifty.com>, "YOS.I" <qwq1...@nifty.ne.jp> writes
> ヒープの一貫性をチェックします。
> UNIX C でこの様なライブラリはあるのでしょうか?
man malloc でデバッグオプションを使うのが良いと思います。
---
Shinji KONO @ Information Engineering, University of the Ryukyus,
PRESTO, Japan Science and Technology Corporation
河野真治 @ 琉球大学工学部情報工学科,
科学技術振興事業団さきがけ研究21(機能と構成)
DIAGNOSTICオプションでコンパイルすると、OSが事後診断を行なう
というものでしょうか?
=============================
YOS.I
E-Mail : qwq1...@nifty.ne.jp
=============================
"Shinji KONO" <ko...@ie.u-ryukyu.ac.jp> wrote in message
news:3988509...@insigna.ie.u-ryukyu.ac.jp...
In article <bdull4$2vf$1...@news511.nifty.com>, "YOS.I" <qwq1...@nifty.ne.jp> writes
> > man malloc でデバッグオプションを使うのが良いと思います。
> DIAGNOSTICオプションでコンパイルすると、OSが事後診断を行なう
> というものでしょうか?
いや、たぶん、man malloc で出ると思うんだけど、環境変数を
設定すると malloc/free 時のチェックが行われます。結構、
有効です。
あと、debug 専用のmalloc libraryがあったような気もする。
最近だと、Safe C とかの専用の言語系もありますね。そっちの
方が良いかも。
"Shinji KONO" <ko...@ie.u-ryukyu.ac.jp> wrote in message
news:3988520...@insigna.ie.u-ryukyu.ac.jp...
> いや、たぶん、man malloc で出ると思うんだけど、環境変数を
> 設定すると malloc/free 時のチェックが行われます。結構、
> 有効です。
あと、/etc/malloc.conf に書いておくという方法もあるみたいで
すね。
# 何をどう書くかは man malloc で出てました。malloc.3 かな。
> あと、debug 専用のmalloc libraryがあったような気もする。
FreeBSD ではなく Linux なら gnu の malloc を使っているので
mcheck でヒープの一貫性チェックができるのですよね…。
--
---
Takashi SAKAMOTO (PXG0...@nifty.ne.jp)
> いや、たぶん、man malloc で出ると思うんだけど、環境変数を
jman malloc で MALLOC(9) を見てました、man malloc ですね。^^;
MALLOC(3) TUNING の章で確認しました。
# 今までmanにカテゴリがあるのを知りませんでしたので...
色々試してみたいと思います。ありがとうございました。
"Takashi SAKAMOTO" <PXG0...@nifty.ne.jp> wrote in message
news:be2fp0$s9t$1...@news522.nifty.com...
> FreeBSD ではなく Linux なら gnu の malloc を使っているので
> mcheck でヒープの一貫性チェックができるのですよね…。
FreeBSDもgnuのCコンパイラが使えると聞きます。
gnu C でコンパイルしたアプリケーションではmcheckというものを
使えないのでしょうか?
# MALLOC(9)を見て、何だか普通の引数じゃないなー
# と思ってはいましたが... UNIXだから...という流れで...
# ...なわけないですね(笑)
=============================
岩越 義正(Iwakoshi Yoshimasa)
E-Mail : qwq1...@nifty.ne.jp
=============================
> > FreeBSD ではなく Linux なら gnu の malloc を使っているので
> > mcheck でヒープの一貫性チェックができるのですよね…。
>
> FreeBSDもgnuのCコンパイラが使えると聞きます。
> gnu C でコンパイルしたアプリケーションではmcheckというものを
> 使えないのでしょうか?
コンパイラではなく、ライブラリのほうの問題です。
Linux では今は C 言語用の基本ライブラリ(libc)は GNU が開発したものを使
っていますが、FreeBSD では、コンパイラこそ gcc を使っているものの、libc
は独自開発のもの(正確にいうと、旧来から *BSD で使われてきたもの)です。
このへんの事情は Solaris でも同様で、Solaris では標準では C コンパイラが
付属せず、ユーザーが何か選んで別途インストールするようになっていますけれ
ども、付属 CD に入っている(すいません、このへん記憶が曖昧です)gcc を使
っても、Sun が別途有償で提供するコンパイラを使っても、libc だけは必ず Sun
が提供したものを使います。
========================================================================
飯嶋 浩光 / でるもんた・いいじま http://www.ht.sakura.ne.jp/~delmonta/
IIJIMA Hiromitsu, aka Delmonta mailto:delm...@ht.sakura.ne.jp