aboutsummaryrefslogtreecommitdiffhomepage
path: root/monitor.go
AgeCommit message (Collapse)Author
2024-08-06main: show runtime panic addresses for `tinygo run`Ayke van Laethem
This adds the same panic locations that are already present for `tinygo flash -monitor`, but for `tinygo run` and `tinygo test`. For example, this is the output that I get while working on some GC code. It now shows the source location instead of just an address: $ tinygo test -v archive/zip === RUN TestReader === RUN TestReader/test.zip panic: runtime error at 0x000000000024d9b4: goroutine stack overflow [tinygo: panic at /home/ayke/src/tinygo/tinygo/src/internal/task/task_stack.go:58:15] FAIL archive/zip 0.139s (This particular location isn't all that useful, but it shows that the feature works).
2023-12-23main: add -serial=rtt supportAyke van Laethem
2023-11-02main, compileopts: move GetTargetSpecs() to compileopts packagesago35
2023-11-02main: add -info option to tinygo monitorsago35
2023-04-26main: print source location when a panic happens in -monitorAyke van Laethem
The previous commit started printing the instruction address for runtime panics. This commit starts using this address to print the source location. Here is an example where this feature is very useful. There is a heap allocation in the Bluetooth package, but we don't know where exactly. Printing the instruction address of the panic is already useful, but what is even more useful is looking up this address in the DWARF debug information that's part of the binary: $ tinygo flash -target=circuitplay-bluefruit -monitor ./examples/heartrate Connected to /dev/ttyACM0. Press Ctrl-C to exit. tick 00:00.810 tick 00:01.587 tick 00:02.387 tick 00:03.244 panic: runtime error at 0x00027c4d: alloc in interrupt [tinygo: panic at /home/ayke/src/tinygo/bluetooth/adapter_sd.go:74:4] To be clear, this path isn't stored on the microcontroller. It's stored as part of the build, and `-monitor` just looks up the path from the panic message. Possible enhancements: - Print such an address for regular panics as well. I'm not sure that's so useful, as it's usually a lot easier to look up panics just by their message. - Use runtimePanicAt (instead of runtimePanic) in other locations, if that proves to be beneficial. - Print the TinyGo-generated output in some other color, to distinguish it from the regular console output. - Print more details when panicking (registers, stack values), and print an actual backtrace.
2022-09-24main: allow setting the baud rate for serial monitors (#3190)sago35
* main: allow setting the baud rate for serial monitors with default baudrate of 115200 bps
2022-09-16main: add serial port monitoring functionalitysago35
Co-authored-by: Ayke <[email protected]>