with one click
rt-claw-diagnose
// Use when analyzing rt-claw build logs, QEMU output, serial monitor logs, CI failures, network/API failures, or boot/runtime crashes.
// Use when analyzing rt-claw build logs, QEMU output, serial monitor logs, CI failures, network/API failures, or boot/runtime crashes.
Use when adding CI coverage for a new rt-claw module, feature chain, endpoint backend, service integration, or regression.
Use when building rt-claw, choosing a platform target, running QEMU, flashing hardware, or debugging C/Meson/native build failures.
Use when finding rt-claw definitions, call sites, subsystem ownership, build wiring, OSAL boundaries, or platform-specific implementations.
Use when rt-claw behavior, APIs, configuration, build commands, platforms, or developer workflows change and documentation may need synchronization.
Use when adding a new rt-claw service, driver, tool, platform helper, platform port, or RTOS backend.
Use when reviewing rt-claw changes for OSAL boundary violations, RTOS coupling, platform leakage, driver layering, or portability risks.
| name | rt-claw-diagnose |
| description | Use when analyzing rt-claw build logs, QEMU output, serial monitor logs, CI failures, network/API failures, or boot/runtime crashes. |
| license | MIT |
Classify the failure first, then reduce it to the smallest command or code path that proves the issue.
git diff and relevant source files.| Pattern | Likely cause | Next check |
|---|---|---|
undefined reference to claw_* | missing source in Meson or wrong feature guard | check meson.build includes the .c file |
implicit declaration of function | missing include or wrong public header | check include order and exported headers |
redefinition of macro | claw_config.h vs generated config conflict | check config guards and Meson options |
multiple definition of | function body in header without static inline | move implementation to .c or mark inline |
FreeRTOS/RT-Thread/Zephyr include inside claw/ | OSAL boundary violation | move RTOS dependency to osal/<rtos>/ |
DHCP timeout or dhcp_fine_tmr | QEMU network setup issue | inspect QEMU -nic options |
DNS resolution failed | no DNS in QEMU or wrong network config | use scripts/api-proxy.py when needed |
TLS handshake failed or esp_tls | ESP32 QEMU TLS limitation | route through scripts/api-proxy.py |
HTTP 503 | API endpoint, rate limit, or token problem | verify endpoint and credentials outside commits |
Stack overflow or pxCurrentTCB | task stack too small | inspect task creation stack sizes |
Data Abort or Prefetch Abort | NULL pointer or bad memory access | rerun QEMU with GDB=1 |
Guru Meditation | ESP-IDF crash, watchdog, stack, or allocation issue | decode backtrace and inspect task state |
| watchdog timeout | blocking call, deadlock, or undersized task stack | check mutexes and long blocking calls |
Feishu no connection detected | WebSocket endpoint or token issue | verify app ID/secret and endpoint |
Telegram HTTP 503 | bot token, API, or rate limit issue | verify with Telegram getMe |
connection reset by peer | TLS version or proxy issue | check whether api-proxy.py is running |
QEMU boot test failed | boot regression or network-dependent boot path | inspect boot banner and test profile |
scripts/check-patch.sh failure | style, line length, comments, or whitespace | rerun staged style check |
| DCO failure | missing Signed-off-by | recommit with git commit -s |
sdkconfig, environment dumps, or local
config files.