[過去ログ] 各種ライブラリ紹介スレ (990レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
487: 名前は開発中のものです。 [sage] 04/09/08 06:02 ID:6+1P9W1S(1) AAS
ヒープはプロセスローカルなものなので、プロセス終了時に
リークしているものは、完全に無害。
どちらかというと、一定時間おきにリークしているものだとか
ある操作ごとにリークしているものが危険。
なお、STLがリークチェッカにひっかる件は、STLの公式ドキュメントにも
記されているよ。
488(1): 名前は開発中のものです。 [sage] 04/09/08 08:35 ID:cVJ+TfVR(1) AAS
ヒープの確保なんでどんな環境でも内部でAPI呼んでるんだろ?
それにC++だと開放は自分持ちだし・・
MFCにメモリ管理に介入出来るところなんてあるのか。
489: 名前は開発中のものです。 [sage] 04/09/08 08:53 ID:NRrGcJ0W(2/2) AAS
>>488
Afx……で始まる、一連のメモリ系APIとか。
490(2): 名前は開発中のものです。 [sage] 04/09/08 10:23 ID:HTUcrn+z(1) AAS
まぁ、デバッグモードでOKなのにリリースで駄目とか
確かに書いたコードが悪いんだろうけどさ
モードによって結果が変わってたら、何の為のデバッグモードかは分からんね。
491: 名前は開発中のものです。 [sage] 04/09/08 10:26 ID:VUx78eUd(2/2) AAS
ど素人のためのデバッグモードです。
492(1): 名前は開発中のものです。 [sage] 04/09/08 11:27 ID:ynCgLjJ8(1) AAS
>>490
それはテメェの設定(デフォルトなんだけどさ)が悪いだけ。
デバッグ時に「変数の値をXXで初期化」って項目が確かある(うろ覚えだが)
なんか設定を色々といじってみたら?
493: 名前は開発中のものです。 [sage] 04/09/08 13:37 ID:dly54/T/(1) AAS
>>484484(1): 名前は開発中のものです。 [sage] 04/09/08 02:05 ID:kzQRGr1l(1/2) AAS
それはboostとかSTLPortでも検出されるよ。
MFCでもたとえばSplitterのドラッグイメージとか、ひとつしか生成しない事がはっきりしている
オブジェクトは、プールしていてプロセス終了に破棄を任せているし。
こういうのはむしろ賢い使い方であって、何ら問題ないと思うけど?
lintで警告が一切出ないソースしか認めないとか言うスタンスの人間ならその方針でもいいけど
そんな奇妙なコードかいてる人間なんてほとんど居ないだろうな。
ところで業務用プロファイラの話はどこ言ったのよ。
まさかVTuneのこととか言わないよな?
わり、ここ2、3日ここ見る暇無かった。
その時使ったんはDevPartnerという奴だ。
(つか会社で調べないとわからなかったのさ、スマソ)
外部リンク[htm]:www.compuware.co.jp
体験版があるっぽいので実際どうなるか通してみるとよかろ。
すでにこの話題はスレ違い甚だしいので、これで終わりにするために、
発言に至る全経緯を書いておく。長文になるがすまん。
NDAで明かせないところは勘弁しとくれ。
2年ほど前、漏れの所に、
「外注に作らせたプログラムが、PCでは動くのだが某ROM焼き用Windowsで動かん、面倒みれ」
というお達しが。(某ROM焼きWindowsが何かはNDAで勘弁)
(もともと漏れはVxWorks屋なんだが、とりあえず面倒は漏れのとこに来る仕掛けになっていたのさ当時。)
PCで追ってもさっぱりわかんねぇし確かに動く。でもターゲットに持ってくと動かねぇ。
ターゲットには計測用一品物PCIボードがわんさか刺さっているし、
そっちとの相性なんだろうかとも考えつつ追うがさっぱりわかんね。
しょうがないのでWindows部隊に相談すると貸してくれたのが上記のDevPartner。
それで追ってみると、MFC内のTabControle(だっけ?)あたりでメモリリーク警告される。
これが怪しいのかと仮定して、ダイアログにタブ何枚かとボタンだけ出して何もしないアプリを書いて、
ターゲットに持ってくと、やっぱり動かねぇ。
OS屋にネジ込んでみたが
「アプリの問題です、それで動かないとしたらこっちの仕様制限ということで」
ということでそっち方面の改善はのぞめない、ということになり、
泣きながら仕様書もないそのアプリを非MFC版に書き直しましたとさ。
ということがあったんさ。
そのターゲットOSが悪いと言えばその通りなんだが、
MFCにはこういう落とし穴もありますよ、ってことで。
というわけで、どう見てもム板、マ板系の話題なので、ここまでにしとく。
スレを元に戻すべく、>481のリクエストに対応のためネット巡りしてくま。
494: 名前は開発中のものです。 [] 04/09/08 13:42 ID:nt5JAcCE(1) AAS
そういえばLunaはメモリ管理自前でやってたな。
ああいうやり方がいいのかどうかはしらんが。
ELはGlobalAlloc()だった気がする。
今ならVirtualAlloc()のがいいとは思うけど。
Win9x系ってnewででかい領域確保できないのが難儀な気がする。
設定で変えられるかも知れんけど以前画像展開用に
20MB確保しようとしてWin98だと落ちてたの気づかなかった事がある。
20MBも確保するなよ、と言われればそれまでだけど・・・
495: 名前は開発中のものです。 [sage] 04/09/08 17:04 ID:kzQRGr1l(2/2) AAS
>>490
debug assertとか>>492にあるようなのとか使わないのか。
デバッグモードとリリースモードが全く同じならデバッグモードの意味ないじゃないか。
496(1): 名前は開発中のものです。 [sage] 04/09/08 20:08 ID:YnNNX9fV(1) AAS
メモリ管理なんか自前でせずに、普通にmallocやnewでokだろ。
それがヤダってんならdlmallocでも使え
外部リンク[html]:gee.cs.oswego.edu
自作はヤメといたほうがいい。
大抵糞なモノが出来て、開発効率、実行速度、メモリ効率全てがガタ落ちする。
497: 名前は開発中のものです。 [sage] 04/09/09 00:04 ID:X/ip1pi7(1) AAS
>>496でようやく「ライブラリ紹介」に戻ってきた。
498(1): 名前は開発中のものです。 [sage] 04/09/09 00:56 ID:PecWHS5e(1) AAS
>>481
RakNet
外部リンク:www.rakkarsoft.com
UDPベースのオブジェクト同期系ネットワークライブラリ
Windows/Linux対応
499: 名前は開発中のものです。 [sage] 04/09/09 01:36 ID:PAmWt9Ny(1) AAS
>>498
RakNetはフリーソフトに使うのでなければ有料では?
>>481のネットゲームがフリーソフトなら問題ないけど。
500: 名前は開発中のものです。 [sage] 04/09/09 17:00 ID:4yIkblD5(1) AAS
>>481
HawkNL
外部リンク:www.hawksoft.com
LGPL、Windows、各種Un*x、MacOS 7〜9/X対応のネットワークライブラリ
オブジェクト同期までは持ってないが、ネットワーク越しのSignal、Mutexぐらいは持ってる。
501: 名前は開発中のものです。 [sage] 04/09/09 19:33 ID:nSfnsFTO(1) AAS
LGPLならもうBSDにしてくれ!
と心底思う。
502: 名前は開発中のものです。 [sage] 04/09/10 01:32 ID:fbFfO+ZQ(1/2) AAS
GPLにしたいところをLGPLで我慢してるんだろう。
503(2): 474 [sage] 04/09/10 19:53:21 ID:NhxKibXg(1/2) AAS
OpenGL 2.0出たな。
>>475-477 >>479479(1): 名前は開発中のものです。 [sage] 04/09/07 21:54 ID:mO8jfU22(1) AAS
>>474
何言ってるのこの人?
SDKだけで作って自分のコードが何も悪くないのに
「メモリ管理」が原因で落ちたらそれはWindowsのバグじゃないか。
VCに限らず何で作っても落ちるはずだろ?
まあ、普通は信じないだろうね。
実際起こってるオレですら状況がわからんのだから。
>>482482(1): 名前は開発中のものです。 [sage] 04/09/07 23:25 ID:XP0tM8Ru(1) AAS
>>474
Debug の時は何もおきないようなバグにでもあったか?
そりゃ VC が Debug モードの時にだけ確保する領域違反検出用のメモリブロックを破壊してて、
Release モードだとそれがないから変なトコ壊して
強制終了食らってるだけなんじゃねーかっつー気がするな。
モノがベータ版とかいうなら別だが、コンパイラを疑うのは最後の選択肢だろうよ。
>Debug の時は何もおきないようなバグにでもあったか?
そう。
もちろんDebugとReleaseの動きがある程度違うという事は知ってる。
ちなみに、配列を操作するというわけでも無いし、動的変数を操作している訳でも無い。
普通に WORD で宣言した変数に値を入れたらある所で決まって落ちた。
もちろん他で宣言した WORD の変数ではこんな事無い。
んで、諦めて BCC でコンパイル(もちろんデバッグモードじゃないぞ?)したら、上手くいった。
504: 名前は開発中のものです。 [sage] 04/09/10 20:09:02 ID:fbFfO+ZQ(2/2) AAS
>オレですら
オレの能力を疑わないところが素敵。
505(1): 名前は開発中のものです。 [sage] 04/09/10 20:34:40 ID:Ts/cUbOT(1) AAS
デバッグしてやるからソースうpしろ。
506(1): 474 [sage] 04/09/10 20:52:39 ID:NhxKibXg(2/2) AAS
>>505
かなり改造して今、コンパイル通らない状態。
問題が起きた EXE ならあるが…
507: 名前は開発中のものです。 [sage] 04/09/10 21:01:11 ID:zx2Eqhn2(1) AAS
>>474474(13): 名前は開発中のものです。 [sage] 04/09/07 21:13 ID:pzfeCiVg(1) AAS
>>460
あ、そゆことね。
VCで作ると、MFCに限らず、Win32SDKだけで作ってもリリース版はメモリ管理悪くて
何も悪くないコードにも関わらず落ちる時あるよ。
(>>503)のような人間とは同じ職場で仕事したくない。プログラマ失格。
508: 名前は開発中のものです。 [sage] 04/09/10 21:19:34 ID:wl6wS2KN(1) AAS
まず、一番疑うべきものが何かってところを完全に間違えてるよな。
509(1): 名前は開発中のものです。 [sage] 04/09/10 21:34:02 ID:TuF2u1Gn(1) AAS
>>506
通んなくてもいいんでupよろ
510(3): 474 [sage] 04/09/11 00:11:47 ID:WoMgddYs(1/2) AAS
>>509
すまん。通してみたがもう起こらなかった。
うpしても意味無いっす。
けど、DebugとReleaseで動きの違うプログラム作ってみた。>>474 で書いたのとは違う問題。
外部リンク[lzh]:up.isp.2ch.net
まあ、こっちは本当にただのバグで解決済みだが…
糞ースだが、ソース見る?('A`)
511(1): 名前は開発中のものです。 [sage] 04/09/11 00:26:29 ID:YKOgMw71(1) AAS
>普通に WORD で宣言した変数に値を入れたらある所で決まって落ちた
有るところで決まって落ちるなら、たぶん自分のプログラムが悪いよ。
原因もすぐ分かると思うんだけど。
上下前次1-新書関写板覧索設栞歴
あと 479 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.029s