a4_d0005
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* a4_d0005: a_DbgObjInf の使い方
-(by [[K]], 2026.04.15)
** (0)
-これは主に自分用のメモです。
** (1)
-クラスを作るとき、一番最後に a_DbgLv1( a_DbgObjInf doi[1...
-例:
a_class(a_Preprocessor_SourceFiles) {
a_VecChr buf[1], stk[1];
char *s;
a_DbgLv1( a_DbgObjInf doi[1]; ) // ← ココ!
};
// [註] a_DbgLv1(...) は a_DbgLv >= 1 のときだけ有効にな...
-[Q] なぜ一番最後にするのですか?
-[A] これはデバッグモードの時だけ存在するメンバ変数で、リ...
-[Q] 以下はみんな a_DbgLv >= 2 が基準なのに、ここだけ a_D...
-[A] 「デバッグレベル2以上」がacl4におけるデバッグモード...
-デバッグレベル1は、クラスのサイズだけデバッグモードと同...
** (2)
-init関数の一番最後で a_DbgObjInf_ini() を呼び出します。
-例:
a_static void a_Preprocessor_SourceFiles_ini(_aDef_ a_Pr...
{
a_VecChr_ini4(_a_ w->buf, w->stk, 0, 0);
a_VecChr_reserve0(w->buf);
w->s = w->buf->p;
a_DbgLv2( a_DbgObjInf_ini(_aThr, w->doi, "Preprocess...
}
// [註] a_DbgLv2(...) は a_DbgLv >= 1 のときだけ有効に...
-[Q] なぜ一番最後にするのですか?
-[A] 途中でinitに失敗するかもしれないですよね。そういう時...
-そのほかの注意点:
--(1) クラス内のメンバ変数(オブジェクト)をinitするとき...
--(2) a_DbgObjInf_ini() するときは _aThr を渡してください...
--(3) もしこのクラスが何らかのクラスでしか使われないサブ...
-備考欄:
-- _a_ は _arg_ の略で、 __FILE__, __LINE__, のこと。ただ...
-- _aDef_ は _argDef_ の略で、 const char *a_fil, int a_l...
-- _aThr は _argThrough の略で、 a_fil, a_lin のこと。た...
** (3)
-deinit関数の一番最初で a_DbgObjInf_din(_aThr, w->doi); ...
-例:
a_static void a_Preprocessor_SourceFiles_din(_aDef_ a_Pr...
{
a_DbgLv2( a_DbgObjInf_din(_aThr, w->doi); ) // ← コ...
intptr_t i, n = a_VecChr_N(w->stk) / (sizeof (a_Prep...
a_Preprocessor_SourceFile **p = (a_Preprocessor_Sour...
for (i = 0; i < n; i++) {
a_Preprocessor_SourceFile_din(p[i]);
a_free(_a_ p[i], sizeof (a_Preprocessor_SourceF...
}
a_VecChr_din4(_a_ w->buf, w->stk, 0, 0);
}
-[Q] なぜ一番最初にするのですか?
-[A] deinit忘れを検出するための仕組みなのですから、忘れず...
-[Q] deinit関数が _aDef_ 情報を取るのはなぜですか? いや...
-[A] ごくまれに、initしていないオブジェクトのdeinitをして...
-一番最初に呼べば、対応するinitがないdeinitをした場合でも...
** (4)
-[Q] a_DbgObjInf_ini / a_DbgObjInf_din はどんな機能を提供...
-[A] 以下の3つです。
--オブジェクトを init したのに deinit してない(=リーク...
--オブジェクトを init してないのに deinit してしまった(...
--オブジェクトを init して、さらにもう一度 init してしま...
-[Q] 少し改造すれば、リークしたオブジェクトを自動で全部 d...
-[A] それは多分できるでしょうが、しかしやるべきではないと...
* こめんと欄
#comment
終了行:
* a4_d0005: a_DbgObjInf の使い方
-(by [[K]], 2026.04.15)
** (0)
-これは主に自分用のメモです。
** (1)
-クラスを作るとき、一番最後に a_DbgLv1( a_DbgObjInf doi[1...
-例:
a_class(a_Preprocessor_SourceFiles) {
a_VecChr buf[1], stk[1];
char *s;
a_DbgLv1( a_DbgObjInf doi[1]; ) // ← ココ!
};
// [註] a_DbgLv1(...) は a_DbgLv >= 1 のときだけ有効にな...
-[Q] なぜ一番最後にするのですか?
-[A] これはデバッグモードの時だけ存在するメンバ変数で、リ...
-[Q] 以下はみんな a_DbgLv >= 2 が基準なのに、ここだけ a_D...
-[A] 「デバッグレベル2以上」がacl4におけるデバッグモード...
-デバッグレベル1は、クラスのサイズだけデバッグモードと同...
** (2)
-init関数の一番最後で a_DbgObjInf_ini() を呼び出します。
-例:
a_static void a_Preprocessor_SourceFiles_ini(_aDef_ a_Pr...
{
a_VecChr_ini4(_a_ w->buf, w->stk, 0, 0);
a_VecChr_reserve0(w->buf);
w->s = w->buf->p;
a_DbgLv2( a_DbgObjInf_ini(_aThr, w->doi, "Preprocess...
}
// [註] a_DbgLv2(...) は a_DbgLv >= 1 のときだけ有効に...
-[Q] なぜ一番最後にするのですか?
-[A] 途中でinitに失敗するかもしれないですよね。そういう時...
-そのほかの注意点:
--(1) クラス内のメンバ変数(オブジェクト)をinitするとき...
--(2) a_DbgObjInf_ini() するときは _aThr を渡してください...
--(3) もしこのクラスが何らかのクラスでしか使われないサブ...
-備考欄:
-- _a_ は _arg_ の略で、 __FILE__, __LINE__, のこと。ただ...
-- _aDef_ は _argDef_ の略で、 const char *a_fil, int a_l...
-- _aThr は _argThrough の略で、 a_fil, a_lin のこと。た...
** (3)
-deinit関数の一番最初で a_DbgObjInf_din(_aThr, w->doi); ...
-例:
a_static void a_Preprocessor_SourceFiles_din(_aDef_ a_Pr...
{
a_DbgLv2( a_DbgObjInf_din(_aThr, w->doi); ) // ← コ...
intptr_t i, n = a_VecChr_N(w->stk) / (sizeof (a_Prep...
a_Preprocessor_SourceFile **p = (a_Preprocessor_Sour...
for (i = 0; i < n; i++) {
a_Preprocessor_SourceFile_din(p[i]);
a_free(_a_ p[i], sizeof (a_Preprocessor_SourceF...
}
a_VecChr_din4(_a_ w->buf, w->stk, 0, 0);
}
-[Q] なぜ一番最初にするのですか?
-[A] deinit忘れを検出するための仕組みなのですから、忘れず...
-[Q] deinit関数が _aDef_ 情報を取るのはなぜですか? いや...
-[A] ごくまれに、initしていないオブジェクトのdeinitをして...
-一番最初に呼べば、対応するinitがないdeinitをした場合でも...
** (4)
-[Q] a_DbgObjInf_ini / a_DbgObjInf_din はどんな機能を提供...
-[A] 以下の3つです。
--オブジェクトを init したのに deinit してない(=リーク...
--オブジェクトを init してないのに deinit してしまった(...
--オブジェクトを init して、さらにもう一度 init してしま...
-[Q] 少し改造すれば、リークしたオブジェクトを自動で全部 d...
-[A] それは多分できるでしょうが、しかしやるべきではないと...
* こめんと欄
#comment
ページ名: