C言語コードをブラウザ内でマスキングする
pointer、array、macro、failure stageを残しながら固有symbol・値・commentを共有用copyで置換します。入力と結果はDevelop Toolsのサーバーへ送信・保存されません。
C言語コードマスキングツールを開く結論
source、header、build logを分け、function・struct・enum・typedef、pointer、配列長、ownership、declaration / definitionの関係を残します。製品名、path、URL、Token、実値は共有用copyで置換します。
元sourceを直接編集せず共有用copyで作業します。
原因と確認順を整理する
- typedef struct、function、pointer、enumの対応を残す
- Segmentation faultではallocation・free・invalid access順を残す
- linker errorではdeclaration・definition・build commandを残す
- function-like macro、#if defined、format string、数値を原文と比較する
typedef struct Device {
unsigned id;
char name[32];
} Device;
#define TRACE_VALUE(name, value) log_value(#name, value)
int load_device(Device *out, const char *path);
診断から修正までの手順
- 1. 再現条件と最初のdiagnosticを記録する
- 2. typedef struct、function、pointer、enumの対応を残す
- 3. Segmentation faultではallocation・free・invalid access順を残す
- 4. warning・Sanitizer・debugger・symbolで事実を確認する
修正後に再テストする
- 正常系、空、最小、最大、一つ超過の境界値を確認する
- 同じcompiler・option・architecture・入力で修正前後を比較する
- warningを抑制しただけ、castしただけ、bufferを大きくしただけになっていないか確認する
- Sanitizerはcompileとfinal linkへ付け、production binaryへ常用しない
C言語の症状別ガイドへ進む
Cコードを安全に共有する手順
- 必要な.c・.hだけを共有用copyへ切り出す
- Make / CMakeとbuild・GDB・Sanitizer logを別に最小化する
- symbol・値・commentをマスキングする
- pointer・array・macro・failure stageを原文と比較する
preprocess・compile・link・runtimeを分ける
| 段階 | 代表症状 | 最初に確認する情報 |
|---|---|---|
| preprocess | header not found、macro分岐 | include path、directive、feature guard |
| compile | implicit declaration、conflicting types、warning | 最初のdiagnostic、prototype、C standard |
| link | undefined reference、multiple definition | symbol、object・library、final link command |
| runtime | Segmentation fault、Access Violation、data race | 入力、最初の自作frame、境界、lifetime |
compiler、C11 / C17 / C23、option、OS、architecture、最適化、入力を別々に記録します。未定義動作(UB)の結果は環境ごとに変わり、特定のcrashを保証しません。
C言語マスキングツールの境界を確認する
| 対象 | 2026-08-13時点の確認 | 共有前の確認 |
|---|---|---|
| 公開範囲 | C11 / C17の一般的構文を主対象 | C23・compiler拡張・generated sourceは非保証 |
| 宣言構造 | function・struct・enum・typedef・pointerは概ね形を確認しやすい | scopeと同一symbolの対応を原文と比較 |
| standard名 | uint32_t、atomic_fetch_add、EXIT_SUCCESS等も置換例がある | 説明に必要な項目だけ右クリックで限定解除 |
| preprocessor | macro名・引数・body、defined symbol、__STDC_VERSION__を置換し得る | #、##、__VA_ARGS__、有効branchを比較 |
| 数値・文字列 | array長、index、bit幅、align、format stringも代替値になる | 意味・型対応を確認し、出力を実行しない |
| 保存 | 入力と結果はブラウザ内で処理 | サーバーへ送信・保存せずLocalStorageは表示設定だけ |
マスキング結果は共有用copyです。compiler同等の解析、compile・link・run可能性、完全な匿名化を保証しません。元sourceを上書きせず、build treeやfirmware生成へ入れないでください。
source・build log・core dumpを分けて共有する
| 共有物 | 推奨する扱い |
|---|---|
| .c / .h | C言語コードマスキングツールでsymbol、値、commentを置換 |
| Makefile / CMakeLists.txt | target、path、library、optionを手動確認 |
| build / GDB / Sanitizer log | Logマスキングツールでpath、username、hostname、addressを確認 |
| JSON / SQL設定 | 専用のJSON / SQLマスキングツールへ分ける |
| binary / object / core / firmware | browser toolへ入力せず、必要なtextだけ抽出して最小化 |
URL、IP、Token、certificate、license、connection string、device IDが漏えい済みなら、削除だけでなく失効・ローテーションも行います。
対象standardと公式資料を照合する
- ISO/IEC 9899:2024 — Programming languages — C
- ISO/IEC JTC1/SC22/WG14 — C
- SEI CERT C Coding Standard
- GCC Warning Options
- Clang AddressSanitizer
- Clang UndefinedBehaviorSanitizer
- GDB Backtrace
- Valgrind Memcheck Manual
- GNU nm
現行ISO CはC23(ISO/IEC 9899:2024)ですが、公開中のマスキングツールはC11 / C17の一般構文を主対象とします。GCC・Clang・MSVCのdiagnosticやoption差、POSIXとISO C、compiler extensionを区別してください。
具体例:CコードをAIへ相談
source、header、build logを分け、function・struct・enum・typedef、pointer、配列長、ownership、declaration / definitionの関係を残します。製品名、path、URL、Token、実値は共有用copyで置換します。
example.test、dummy path、架空の型名を使い、再現に不要なproject情報を取り除きます。
- 最小再現を共有用copyへ切り出す
- symbol・値・commentをマスキングする
- Cの型・境界・failure stageを比較する
- 結果だけを共有する
結果側は右クリックで個別解除・再適用できます。戻した情報が必要か送信前に再確認してください。
よくある質問
- マスキング後のCコードはcompileできますか?
- 保証しません。standard typedef / API、macro、数値、format string、C23構文、compiler拡張が変化する場合があります。
- 右クリックでどこまで戻せばよいですか?
- 調査に必要なAPI、type、size関係だけを限定解除し、固有symbol・path・値が戻っていないか確認します。
- 入力したCコードはサーバーへ送信されますか?
- 入力と結果はブラウザ内で処理され、サーバーへ送信・保存されません。LocalStorageへ保存されるのは表示設定だけです。