Skip to content
Product

Built, run, and debugged before you see a diff.

ByteAsk uses your compiler, your sanitizers, gdb, and your tests. You review a change that already ran.

Live debugging

It joins the gdb session you already have open.

Linux allows one debugger per process. ByteAsk uses a bridge you start in yours.

A shell agentClaude Codeclaude, ~/orderdLocked out
$ claude "my gdb is stopped on the deadlock in orderd, take a look"
Your gdb is holding the process.
$ gdb -p <pid> -batch -ex bt
✗warning: process <pid> is already traced by process <your-gdb>
✗ptrace: Operation not permitted.
One tracer per process. The kernel refuses
a second debugger while yours is attached.
ByteAskbyteask, ~/orderdIn your session
$ byteask "my gdb is stopped on the deadlock in orderd, take a look"
Joined through the bridge you started.
(gdb) bt
#3 OrderBook::cancel (...) at order_book.cpp:214
(gdb) p risk_mtx_._M_mutex.__data.__owner
$1 = 71154 (held by the risk thread)
Your breakpoints are still set for the next turn.
+ std::scoped_lock lk(book_mtx_, risk_mtx_);
✓Proposed, waiting for your approval.
Your network
Your machine
gdbyour open session
byteaskthe CLI
Toolsbuild, sanitizers, tests
ByteAsk gatewaycompany keys, allowlists
self-hosted modelsvLLM, Ollama, llama.cpp

The sanitizer names the line.

ASang++ -O1 -g -fsanitize=address -fno-omit-frame-pointer order_book.cpp && ./order_book_asan
==2967905==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x60c0000000c8WRITE of size 4 at 0x60c0000000c8 thread T0    #0 0x55d75c82e5a6 in OrderBook::cancel_all() demo/outputs/order_book.cpp:31    #1 0x55d75c82e5a6 in main demo/outputs/order_book.cpp:42    #2 0x7feead645249 in __libc_start_call_main libc_start_call_main.h:580x60c0000000c8 is located 8 bytes to the right of 128-byte regionallocated by thread T0 here:    #0 0x7feeadcb94c8 in operator new(unsigned long)SUMMARY: AddressSanitizer: heap-buffer-overflow demo/outputs/order_book.cpp:31
AddressSanitizer cancel_all() writes one past the end of the array.
ctestcmake -B build && cmake --build build && ctest --test-dir build
Test project demo/outputs/build1/3 Test #1: book_ops .........................   Passed    0.00 sec2/3 Test #2: risk_engine ......................   Passed    0.00 sec3/3 Test #3: wire_codec .......................   Passed    0.00 sec 100% tests passed, 0 tests failed out of 3 Total Test time (real) =   0.01 sec
ctest 3 of 3 passed.

The tools you already run

  • Build

    It builds your tree before it edits it

    • clangd
    • CMake
    • Compiler Explorer
    • C++ Insights
  • Debug

    ASan, gdb and rr, on your process

    • ASan
    • gdb
    • lldb
    • Valgrind
    • rr
  • Lint

    Your .clang-tidy, not ours

    • clang-tidy
    • clang-format
    • cppcheck
  • Speed

    perf, before you see a diff

    • perf
    • Callgrind
    • QuickBench
  • Binaries

    objdump, when there is no source

    • objdump
    • nm
    • readelf

Your key, or your own server

  • Managed

    Sign in and use OpenAI, Anthropic and Google models through ByteAsk. No API key to paste.

    $ byteask login
  • Your key

    Use your own OpenAI, Anthropic or Gemini key. Traffic goes straight to the provider, not through ByteAsk.

    $ byteask byok set
  • Your server

    Point ByteAsk at vLLM, Ollama, llama.cpp, LM Studio, TGI, SGLang or a LiteLLM proxy. Self-hosted models are not metered.

    $ byteask models add my-model --url http://your-host:8000

Standards it can cite

ToolCorpus
autosar_refAUTOSAR C++14 · MISRA · ISO C++
mcu_refSTM32 · Cortex-M · Modbus · CAN
fpga_refXilinx UltraScale · AMBA AXI
hft_refITCH/OUCH · FIX · IEEE 1588 PTP
grid_refIEEE 1547 · 2030.5 · SunSpec
scpi_refSCPI · instrument manuals
x86_refx86-64 Software Developer Manual