diff --git a/README.md b/README.md index 247d77d..5481d6b 100644 --- a/README.md +++ b/README.md @@ -12,8 +12,7 @@ Runtime debugging for AI agents, and for people. An app built with Crafter.Debug Breakpoints and memory stay with a debugger; `crafter-debug debugger` prints how to attach one. ```console -$ crafter-build --debug-api # the app's debug build, and the client with it -$ crafter-build --debug-api -r & # the app, in the background +$ crafter-build --debug-api -r & # the app's debug build, in the background $ ./build/crafter-debug ls --wait 60s game id 4f1c09a2b7e3d851 pid 3 (sandbox 48211) up 4s port 41207 $ ./build/crafter-debug call Lobby_Start && ./build/crafter-debug wait --frames 30 diff --git a/examples/Basic/implementations/Basic.World.cpp b/examples/Basic/implementations/Basic.World.cpp index eb27403..14459f5 100644 --- a/examples/Basic/implementations/Basic.World.cpp +++ b/examples/Basic/implementations/Basic.World.cpp @@ -16,7 +16,6 @@ void Basic::World::Reset() { void Basic::World::Clear() { balls.clear(); - nextId = 1; time = 0; fastest = 0; } diff --git a/examples/Basic/interfaces/Basic.World.cppm b/examples/Basic/interfaces/Basic.World.cppm index 892f5c7..3ec2b06 100644 --- a/examples/Basic/interfaces/Basic.World.cppm +++ b/examples/Basic/interfaces/Basic.World.cppm @@ -43,9 +43,8 @@ export namespace Basic { Physics physics; Floor floor; - // Removes every ball and drops the scene's five, as balls 1 to 5. + // Removes every ball and drops the scene's five. void Reset(); - // Removes every ball; ids start again from 1. void Clear(); // Returns the new ball's id. std::int32_t Spawn(float x, float y, float vy, float radius); diff --git a/implementations/Crafter.Debug.Cli-Client.cpp b/implementations/Crafter.Debug.Cli-Client.cpp index bc4d041..3cbb467 100644 --- a/implementations/Crafter.Debug.Cli-Client.cpp +++ b/implementations/Crafter.Debug.Cli-Client.cpp @@ -974,15 +974,13 @@ memory are a debugger's job; `crafter-debug debugger` prints how to attach one. ## The loop -1. Build with the debug flag, in the foreground: `crafter-build --debug-api` - (use the project's own flag). That build compiles this client too. -2. Start the app in the background, since it does not exit: - `crafter-build --debug-api -r`. -3. `./build/crafter-debug ls --wait 60s` until it is listed. -4. `cmds` and `help ` to see what it offers, `get '*'` for its state. -5. Act and observe: `call`, `set`, `pause --when`, `wait`, `step`, `trace`, +1. Build and start the app from its debug build, in the background (it does + not exit): `crafter-build --debug-api -r` (use the project's own flag). +2. `./build/crafter-debug ls --wait 60s` until it is listed. +3. `cmds` and `help ` to see what it offers, `get '*'` for its state. +4. Act and observe: `call`, `set`, `pause --when`, `wait`, `step`, `trace`, `log --level warn`, `screenshot` (open the PNG it prints with Read). -6. `quit` when done. Killing the background task may leave the app running +5. `quit` when done. Killing the background task may leave the app running if crafter-build's alias lacks --die-with-parent; `ls` shows leftovers. ## Commands diff --git a/tooling/AGENTS.consumer.md b/tooling/AGENTS.consumer.md index f44536b..3d4e544 100644 --- a/tooling/AGENTS.consumer.md +++ b/tooling/AGENTS.consumer.md @@ -4,8 +4,7 @@ This app can be driven while it runs: call its commands, read and set its state, ### Driving it -- Build with the debug flag first, in the foreground: `crafter-build `. That build also compiles the client `./build/crafter-debug` runs. The first one takes a few minutes. -- Then start the app in the background, since it does not exit: `crafter-build -r`. +- Start the debug build in the background, since it does not exit: `crafter-build -r`. - From the project directory, use `./build/crafter-debug`: - `ls --wait 60s` until it is listed; `status`, `cmds`, `help `, `get '*'` - `call key=value ...`, `set ` diff --git a/tooling/interfaces/Crafter.Debug.Build.cppm b/tooling/interfaces/Crafter.Debug.Build.cppm index 00b8b43..0c2aee6 100644 --- a/tooling/interfaces/Crafter.Debug.Build.cppm +++ b/tooling/interfaces/Crafter.Debug.Build.cppm @@ -87,7 +87,7 @@ namespace Crafter::Debug { "# project with {0}: runs the crafter-debug client that build compiled.\n" "client={1}\n" "if [ ! -x \"$client\" ]; then\n" - " echo \"crafter-debug: the client is not built yet; let crafter-build {0} finish first, which builds it with the app\" >&2\n" + " echo \"crafter-debug: the client is not built yet; build with: crafter-build {0}\" >&2\n" " exit 2\n" "fi\n", flag, ShellQuote(client.string())); @@ -113,7 +113,7 @@ namespace Crafter::Debug { return std::format( "#!/bin/sh\n" "# Written by Crafter.Debug (Debug::Use): this project has no debug build yet.\n" - "echo \"crafter-debug: no debug build yet; build with: crafter-build {0}, then start the app in the background with: crafter-build {0} -r\" >&2\n" + "echo \"crafter-debug: no debug build yet; build with: crafter-build {}\" >&2\n" "exit 2\n", flag); }