René's URL Explorer Experiment


Title: read memory sometimes returns invalid data · Issue #28 · orbcode/orbtrace · GitHub

Open Graph Title: read memory sometimes returns invalid data · Issue #28 · orbcode/orbtrace

X Title: read memory sometimes returns invalid data · Issue #28 · orbcode/orbtrace

Description: We've discussed this somewhat on discord, but I've done some more testing and feel it's worthy of proper tracking here. Background Using OpenOCD's RTT commands, scanning for memory for the "SEGGER RTT" control block marker sometimes dete...

Open Graph Description: We've discussed this somewhat on discord, but I've done some more testing and feel it's worthy of proper tracking here. Background Using OpenOCD's RTT commands, scanning for memory for the "SEGGER ...

X Description: We've discussed this somewhat on discord, but I've done some more testing and feel it's worthy of proper tracking here. Background Using OpenOCD's RTT commands, scanning for memory ...

Opengraph URL: https://github.com/orbcode/orbtrace/issues/28

X: @github

direct link

Domain: patch-diff.githubusercontent.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"read memory sometimes returns invalid data","articleBody":"We've discussed this somewhat on discord, but I've done some more testing and feel it's worthy of proper tracking here.\n\n## Background\nUsing OpenOCD's [RTT commands](https://openocd.org/doc/html/General-Commands.html#Real-Time-Transfer-_0028RTT_0029), scanning for memory for the \"SEGGER RTT\" control block marker sometimes detects a bad address, or fails to detect it at all, depending on the starting address of the scan.\n\n\u003cdetails\u003e\n\n\u003csummary\u003eOpenOcd snippet for issuing the scan:\u003c/summary\u003e\nThis scans 0x4000 bytes of memory starting at 0x1fff0000\n```tcl\nproc app_rtt_restart { {ARG 0x1fff0000} } {\n        # Swallow openocd getting cranky if it wasn't already started.\n        echo [catch {rtt stop}]\n        rtt setup $ARG 0x4000 \"SEGGER RTT\"\n        rtt start\n        echo [catch {rtt server stop 9091}]\n        rtt server start 9091 0\n}\n```\n\u003c/details\u003e\n\nThe relevant code in OpenOCD that this then triggers is here: https://github.com/openocd-org/openocd/blob/master/src/target/rtt.c#L239-L281\n\n\u003cdetails\u003e\n\u003csummary\u003eLogging patch to openocd to help understand future traces\u003c/summary\u003e\n\n```diff\ndiff --git a/src/target/rtt.c b/src/target/rtt.c\nindex a8ab24a60..255207a7c 100644\n--- a/src/target/rtt.c\n+++ b/src/target/rtt.c\n@@ -241,7 +241,7 @@ int target_rtt_find_control_block(struct target *target,\n                void *user_data)\n {\n        target_addr_t address_end = *address + size;\n-       uint8_t buf[1024];\n+       uint8_t buf[512];\n \n        *found = false;\n \n@@ -255,6 +255,7 @@ int target_rtt_find_control_block(struct target *target,\n \n                const size_t buf_size = MIN(sizeof(buf), address_end - addr);\n                ret = target_read_buffer(target, addr, buf_size, buf);\n+               LOG_INFO(\"KARL: Reading buffer from addr: 0x%lx with size: %lu\", addr, buf_size);\n \n                if (ret != ERROR_OK)\n                        return ret;\n@@ -266,10 +267,13 @@ int target_rtt_find_control_block(struct target *target,\n                                id_matched_length = 0;\n                        }\n \n-                       if (buf[buf_off] == id[id_matched_length])\n+                       if (buf[buf_off] == id[id_matched_length]) {\n                                id_matched_length++;\n+                               LOG_INFO(\"KARL: addr: 0x%lx match for buf_off: %lu char == '%c'\", addr, buf_off, buf[buf_off]);\n+                       }\n \n                        if (id_matched_length == id_length) {\n+                               LOG_INFO(\"KARL: found a match at 0x%lx with bufoff %lu and id_length: %lu\", addr, buf_off, id_length);\n                                *address = addr + buf_off + 1 - id_length;\n                                *found = true;\n                                return ERROR_OK;\ndiff --git a/src/target/target.c b/src/target/target.c\nindex bdf0ff244..46dde157c 100644\n--- a/src/target/target.c\n+++ b/src/target/target.c\n@@ -1255,6 +1255,8 @@ int target_read_memory(struct target *target,\n                LOG_ERROR(\"Target %s doesn't support read_memory\", target_name(target));\n                return ERROR_FAIL;\n        }\n+       LOG_DEBUG(\"target_read_memory of %\" PRIu32 \" size with count: %\" PRIu32 \"byte at \" TARGET_ADDR_FMT,\n+                         size, count, address);\n        return target-\u003etype-\u003eread_memory(target, address, size, count, buffer);\n }\n \n\n```\n\n\u003c/details\u003e\n\nThe problem manifests when OpenOCD either (depending on actual placement of the `_SEGGER_RTT` control block and starting scan address and scan chunk size) is either a) correct operation (yay!) b) The block  being detected, but at the wrong location or c) the block not being detected at all.\n\n## Example GDB output of failure\n```\n(gdb) mon app_rtt_restart\n0\nrtt: Searching for control block 'SEGGER RTT'\nKARL: Reading buffer from addr: 0x1fff0000 with size: 512\nKARL: Reading buffer from addr: 0x1fff0200 with size: 512\nKARL: Reading buffer from addr: 0x1fff0400 with size: 512\nKARL: Reading buffer from addr: 0x1fff0600 with size: 512\nKARL: Reading buffer from addr: 0x1fff0800 with size: 512\nKARL: Reading buffer from addr: 0x1fff0a00 with size: 512\nKARL: Reading buffer from addr: 0x1fff0c00 with size: 512\nKARL: Reading buffer from addr: 0x1fff0e00 with size: 512\nKARL: Reading buffer from addr: 0x1fff1000 with size: 512\nKARL: Reading buffer from addr: 0x1fff1200 with size: 512\nKARL: addr: 0x1fff1200 match for buf_off: 460 char == 'S'\nKARL: Reading buffer from addr: 0x1fff1400 with size: 512\nKARL: addr: 0x1fff1400 match for buf_off: 496 char == 'S'\nKARL: addr: 0x1fff1400 match for buf_off: 497 char == 'E'\nKARL: addr: 0x1fff1400 match for buf_off: 498 char == 'G'\nKARL: addr: 0x1fff1400 match for buf_off: 499 char == 'G'       \u003c\u003c\u003c\u003c\u003c note this is where it should have  been found.\nKARL: Reading buffer from addr: 0x1fff1600 with size: 512\nKARL: addr: 0x1fff1600 match for buf_off: 149 char == 'S'\nKARL: addr: 0x1fff1600 match for buf_off: 312 char == 'S'\nKARL: addr: 0x1fff1600 match for buf_off: 333 char == 'S'\nKARL: addr: 0x1fff1600 match for buf_off: 341 char == 'S'\nKARL: addr: 0x1fff1600 match for buf_off: 362 char == 'S'\nKARL: addr: 0x1fff1600 match for buf_off: 372 char == 'S'\nKARL: addr: 0x1fff1600 match for buf_off: 376 char == 'S'\nKARL: addr: 0x1fff1600 match for buf_off: 476 char == 'S'\nKARL: Reading buffer from addr: 0x1fff1800 with size: 512\nKARL: addr: 0x1fff1800 match for buf_off: 35 char == 'S'\nKARL: addr: 0x1fff1800 match for buf_off: 77 char == 'S'\nKARL: addr: 0x1fff1800 match for buf_off: 98 char == 'S'\nKARL: addr: 0x1fff1800 match for buf_off: 108 char == 'S'\nKARL: addr: 0x1fff1800 match for buf_off: 112 char == 'S'\nKARL: addr: 0x1fff1800 match for buf_off: 155 char == 'S'\nKARL: addr: 0x1fff1800 match for buf_off: 169 char == 'S'\n\u003c\u003c\u003c\u003c\u003c continues here, but fails to find the block\u003e\u003e\u003e\u003e\n```\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eViewing memory in gdb to see what might have gone wrong\u003c/summary\u003e\n\n```\n(gdb) x /32 0x1fff1400+497\n0x1fff15f1 \u003cuxTimerTaskStack.0+509\u003e:\t0xa5\t0xa5\t0xa5\t0x53\t0x45\t0x47\t0x47\t0x45\n0x1fff15f9 \u003c_SEGGER_RTT+5\u003e:\t0x52\t0x20\t0x52\t0x54\t0x54\t0x00\t0x00\t0x00\n0x1fff1601 \u003c_SEGGER_RTT+13\u003e:\t0x00\t0x00\t0x00\t0x03\t0x00\t0x00\t0x00\t0x03\n0x1fff1609 \u003c_SEGGER_RTT+21\u003e:\t0x00\t0x00\t0x00\t0x24\t0xe7\t0x00\t0x00\t0x9c\n(gdb) p /x \u0026_SEGGER_RTT \n$5 = 0x1fff15f4\n(gdb) x /c 0x1fff1400+496\n0x1fff15f0 \u003cuxTimerTaskStack.0+508\u003e:\t-91 '\\245'\n(gdb) x /c 0x1fff1400+497\n0x1fff15f1 \u003cuxTimerTaskStack.0+509\u003e:\t-91 '\\245'\n(gdb) x /c 0x1fff1400+498\n0x1fff15f2 \u003cuxTimerTaskStack.0+510\u003e:\t-91 '\\245'\n(gdb) x /c 0x1fff1400+499\n0x1fff15f3 \u003cuxTimerTaskStack.0+511\u003e:\t-91 '\\245'\n(gdb) x /c 0x1fff1400+500\n0x1fff15f4 \u003c_SEGGER_RTT\u003e:\t83 'S'          \u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c note, this doesn't match what the buffer earlier gave us....\n(gdb) x /c 0x1fff1400+501\n0x1fff15f5 \u003c_SEGGER_RTT+1\u003e:\t69 'E'\n(gdb) x /c 0x1fff1400+502\n0x1fff15f6 \u003c_SEGGER_RTT+2\u003e:\t71 'G'\n(gdb) x /c 0x1fff1400+503\n0x1fff15f7 \u003c_SEGGER_RTT+3\u003e:\t71 'G'\n(gdb) \n```\n\n\u003c/details\u003e\n\nAttached is a pcap file of doin the \"mon app_rtt_restart\" step, where this goes wrong: \n\n[orbtrace-rtt-rescan-chunk-20251006.pcapng.gz](https://github.com/user-attachments/files/22723648/orbtrace-rtt-rescan-chunk-20251006.pcapng.gz)\n\nPacket 216 corresponds to part of the read of the area leading up to the RTT block, and the \"leftover data\" (payload) from wireshark dumps as:\n\u003cdetails\u003e\n\u003csummary\u003ehexdump of decode of packet 216, see pcap for more details\u003c/summary\u003e\n\n```\n0000   06 7d 00 01 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5   .}..............\n0010   a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5   ................\n0020   a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5   ................\n0030   a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5   ................\n0040   a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5   ................\n0050   a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5   ................\n0060   a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5   ................\n0070   a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5   ................\n0080   a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5   ................\n0090   a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5   ................\n00a0   a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5   ................\n00b0   a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5   ................\n00c0   a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5   ................\n00d0   a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5   ................\n00e0   a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5   ................\n00f0   a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5   ................\n0100   a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5   ................\n0110   a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5   ................\n0120   a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5   ................\n0130   a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 98 13 ff 1f   ................\n0140   a5 a5 a5 a5 fc 1a ff 1f a5 a5 a5 a5 50 15 ff 1f   ............P...\n0150   01 00 00 00 ff ff ff ff a5 a5 a5 a5 a5 a5 a5 a5   ................\n0160   70 1b ff 1f 38 1b ff 1f 24 1b ff 1f 00 00 00 00   p...8...$.......\n0170   78 15 ff 1f 00 00 00 00 20 00 00 00 a5 a5 a5 a5   x....... .......\n0180   a5 a5 a5 a5 a5 a5 a5 a5 c0 15 ff 1f a5 a5 a5 a5   ................\n0190   a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 fd ff ff ff   ................\n01a0   00 00 00 00 01 00 00 00 00 00 00 10 04 ed 00 e0   ................\n01b0   a5 a5 a5 a5 23 9a 00 00 d4 a9 00 00 00 00 00 61   ....#..........a\n01c0   01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................\n01d0   d8 15 ff 1f 4b a9 00 00 a5 a5 a5 a5 00 00 00 00   ....K...........\n01e0   01 00 00 00 00 00 00 00 a5 a5 a5 a5 b9 ad 00 00   ................\n01f0   a5 a5 a5 a5 53 45 47 47                           ....SEGG\n```\n\n\u003c/details\u003e\nNote that this URB _ends_ with the SEGG (the bytes that we started to match...\n\npacket 220, the next inbound packet, has the \"next piece\" but it has skipped a section, (4 bytes, the difference between MPS of 508 and the 512 request block)  Note that this has the \"TT\" at the end of the magic string `SEGGER RTT` but is missing the `ER\u003cspace\u003eR`\n\u003cdetails\u003e\n\u003csummary\u003ehexdump of packet 220, see pcap for more info\u003c/summary\u003e\n\n```\n0000   05 04 01 54 54 00 00 00 00 00 00 03 00 00 00 03   ...TT...........\n0010   00 00 00                                          ...\n```\n\n\u003c/details\u003e\n\nThe next inbound packet, frame 224, contains more memory and some of the actual RTT buffer contents, as expected.\n\nOpenOCD -d3 log of this section attached (too big and spammy to inline, and mostly summarized above, but included for completeness: \n\n[oocd-d3-log-failing-case.txt](https://github.com/user-attachments/files/22724199/oocd-d3-log-failing-case.txt)\n\n## Why report here?\nThis only happens with an orbtrace.  Using a jlink, or a different CMSIS-DAP adapter does not trigger this problem.\n\nIt was suggested that OpenOCD is simply incapable of re-assembling buffers when reading from the target and that this path had simply not been exercised before (a CMSIS-DAP interface with MPS != 64)  I tested this by having openocd request different odd sized buffers, which all worked.  The problem only manifests if OpenOCD asks Orbtrace for \u003e 508 bytes.\n\nUsing for instance, 191 byte requests from OpenOCD and adjusting the start address to ensure it crosses a boundary still works just fine:\n\n\u003cdetails\u003e\n\u003csummary\u003eOpenOCD correctly reasssembling across 191 byte blocks\u003c/summary\u003e\n\n```\n(gdb) mon app_rtt_restart 0x1fff0054\n0\nrtt: Searching for control block 'SEGGER RTT'\nKARL: Reading buffer from addr: 0x1fff0054 with size: 191\nKARL: Reading buffer from addr: 0x1fff0113 with size: 191\nKARL: Reading buffer from addr: 0x1fff01d2 with size: 191\nKARL: Reading buffer from addr: 0x1fff0291 with size: 191\nKARL: Reading buffer from addr: 0x1fff0350 with size: 191\nKARL: Reading buffer from addr: 0x1fff040f with size: 191\nKARL: Reading buffer from addr: 0x1fff04ce with size: 191\nKARL: Reading buffer from addr: 0x1fff058d with size: 191\nKARL: Reading buffer from addr: 0x1fff064c with size: 191\nKARL: Reading buffer from addr: 0x1fff070b with size: 191\nKARL: Reading buffer from addr: 0x1fff07ca with size: 191\nKARL: Reading buffer from addr: 0x1fff0889 with size: 191\nKARL: Reading buffer from addr: 0x1fff0948 with size: 191\nKARL: Reading buffer from addr: 0x1fff0a07 with size: 191\nKARL: Reading buffer from addr: 0x1fff0ac6 with size: 191\nKARL: Reading buffer from addr: 0x1fff0b85 with size: 191\nKARL: Reading buffer from addr: 0x1fff0c44 with size: 191\nKARL: Reading buffer from addr: 0x1fff0d03 with size: 191\nKARL: Reading buffer from addr: 0x1fff0dc2 with size: 191\nKARL: Reading buffer from addr: 0x1fff0e81 with size: 191\nKARL: Reading buffer from addr: 0x1fff0f40 with size: 191\nKARL: Reading buffer from addr: 0x1fff0fff with size: 191\nKARL: Reading buffer from addr: 0x1fff10be with size: 191\nKARL: Reading buffer from addr: 0x1fff117d with size: 191\nKARL: Reading buffer from addr: 0x1fff123c with size: 191\nKARL: Reading buffer from addr: 0x1fff12fb with size: 191\nKARL: Reading buffer from addr: 0x1fff13ba with size: 191\nKARL: addr: 0x1fff13ba match for buf_off: 18 char == 'S'\nKARL: Reading buffer from addr: 0x1fff1479 with size: 191\nKARL: Reading buffer from addr: 0x1fff1538 with size: 191\nKARL: addr: 0x1fff1538 match for buf_off: 188 char == 'S'\nKARL: addr: 0x1fff1538 match for buf_off: 189 char == 'E'\nKARL: addr: 0x1fff1538 match for buf_off: 190 char == 'G'\nKARL: Reading buffer from addr: 0x1fff15f7 with size: 191          \u003c\u003c\u003c\u003c\u003c\u003c\u003c\u003c crosses boundary and resassembles correctly\nKARL: addr: 0x1fff15f7 match for buf_off: 0 char == 'G'\nKARL: addr: 0x1fff15f7 match for buf_off: 1 char == 'E'\nKARL: addr: 0x1fff15f7 match for buf_off: 2 char == 'R'\nKARL: addr: 0x1fff15f7 match for buf_off: 3 char == ' '\nKARL: addr: 0x1fff15f7 match for buf_off: 4 char == 'R'\nKARL: addr: 0x1fff15f7 match for buf_off: 5 char == 'T'\nKARL: addr: 0x1fff15f7 match for buf_off: 6 char == 'T'\nKARL: found a match at 0x1fff15f7 with bufoff 6 and id_length: 10\nrtt: Control block found at 0x1fff15f4\n```\n\n\u003c/details\u003e\n\n\nA pcap of this working 191byte cross boundary re-scan is also attached here: \n\n[orbtrace-rtt-rescan-good191crossboundary-20251006.pcapng.gz](https://github.com/user-attachments/files/22724074/orbtrace-rtt-rescan-good191crossboundary-20251006.pcapng.gz)\n\n\u003cdetails\u003e\n\u003csummary\u003eOpenOCD -d3 log of this (successful scan)\u003c/summary\u003e\n\n```\nDebug: 10809 442148 command.c:82 script_debug(): command - rtt setup 0x1fff0054 0x4000 SEGGER RTT\nDebug: 10810 442148 command.c:82 script_debug(): command - rtt start\nInfo : 10811 442148 rtt.c:251 target_rtt_find_control_block(): rtt: Searching for control block 'SEGGER RTT'\nDebug: 10812 442148 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O7274743a20536561726368696e6720666f7220636f6e74726f6c20626c6f636b202753454747455220525454270a#2a\nDebug: 10813 442148 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff0054\nDebug: 10814 442148 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff0054\nDebug: 10815 442149 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff0110\nDebug: 10816 442149 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff0112\nInfo : 10817 442149 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff0054 with size: 191\nDebug: 10818 442149 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663030353420776974682073697a653a203139310a#c3\nDebug: 10819 442149 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff0113\nDebug: 10820 442149 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff0113\nDebug: 10821 442149 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff0114\nDebug: 10822 442150 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff01d0\nInfo : 10823 442150 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff0113 with size: 191\nDebug: 10824 442150 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663031313320776974682073697a653a203139310a#bf\nDebug: 10825 442150 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff01d2\nDebug: 10826 442150 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff01d2\nDebug: 10827 442150 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff01d4\nDebug: 10828 442150 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff0290\nInfo : 10829 442150 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff01d2 with size: 191\nDebug: 10830 442150 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663031643220776974682073697a653a203139310a#c4\nDebug: 10831 442150 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff0291\nDebug: 10832 442150 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff0291\nDebug: 10833 442151 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff0292\nDebug: 10834 442151 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff0294\nInfo : 10835 442151 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff0291 with size: 191\nDebug: 10836 442151 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663032393120776974682073697a653a203139310a#c6\nDebug: 10837 442151 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff0350\nDebug: 10838 442151 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff0350\nDebug: 10839 442151 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff040c\nDebug: 10840 442152 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff040e\nInfo : 10841 442152 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff0350 with size: 191\nDebug: 10842 442152 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663033353020776974682073697a653a203139310a#c2\nDebug: 10843 442152 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff040f\nDebug: 10844 442152 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff040f\nDebug: 10845 442152 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff0410\nDebug: 10846 442152 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff04cc\nInfo : 10847 442152 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff040f with size: 191\nDebug: 10848 442152 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663034306620776974682073697a653a203139310a#c7\nDebug: 10849 442152 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff04ce\nDebug: 10850 442152 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff04ce\nDebug: 10851 442152 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff04d0\nDebug: 10852 442153 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff058c\nInfo : 10853 442153 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff04ce with size: 191\nDebug: 10854 442153 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663034636520776974682073697a653a203139310a#cc\nDebug: 10855 442153 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff058d\nDebug: 10856 442153 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff058d\nDebug: 10857 442153 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff058e\nDebug: 10858 442153 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff0590\nInfo : 10859 442154 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff058d with size: 191\nDebug: 10860 442154 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663035386420776974682073697a653a203139310a#ce\nDebug: 10861 442154 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff064c\nDebug: 10862 442154 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff064c\nDebug: 10863 442154 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff0708\nDebug: 10864 442154 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff070a\nInfo : 10865 442154 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff064c with size: 191\nDebug: 10866 442154 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663036346320776974682073697a653a203139310a#ca\nDebug: 10867 442154 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff070b\nDebug: 10868 442154 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff070b\nDebug: 10869 442154 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff070c\nDebug: 10870 442155 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff07c8\nInfo : 10871 442155 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff070b with size: 191\nDebug: 10872 442155 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663037306220776974682073697a653a203139310a#c6\nDebug: 10873 442155 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff07ca\nDebug: 10874 442155 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff07ca\nDebug: 10875 442155 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff07cc\nDebug: 10876 442155 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff0888\nInfo : 10877 442156 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff07ca with size: 191\nDebug: 10878 442156 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663037636120776974682073697a653a203139310a#cb\nDebug: 10879 442156 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff0889\nDebug: 10880 442156 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff0889\nDebug: 10881 442156 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff088a\nDebug: 10882 442156 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff088c\nInfo : 10883 442156 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff0889 with size: 191\nDebug: 10884 442156 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663038383920776974682073697a653a203139310a#d3\nDebug: 10885 442156 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff0948\nDebug: 10886 442156 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff0948\nDebug: 10887 442157 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff0a04\nDebug: 10888 442157 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff0a06\nInfo : 10889 442157 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff0948 with size: 191\nDebug: 10890 442157 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663039343820776974682073697a653a203139310a#cf\nDebug: 10891 442157 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff0a07\nDebug: 10892 442157 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff0a07\nDebug: 10893 442157 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff0a08\nDebug: 10894 442158 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff0ac4\nInfo : 10895 442158 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff0a07 with size: 191\nDebug: 10896 442158 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663061303720776974682073697a653a203139310a#c5\nDebug: 10897 442158 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff0ac6\nDebug: 10898 442158 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff0ac6\nDebug: 10899 442158 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff0ac8\nDebug: 10900 442158 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff0b84\nInfo : 10901 442158 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff0ac6 with size: 191\nDebug: 10902 442158 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663061633620776974682073697a653a203139310a#ca\nDebug: 10903 442158 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff0b85\nDebug: 10904 442158 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff0b85\nDebug: 10905 442158 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff0b86\nDebug: 10906 442158 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff0b88\nInfo : 10907 442159 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff0b85 with size: 191\nDebug: 10908 442159 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663062383520776974682073697a653a203139310a#cc\nDebug: 10909 442159 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff0c44\nDebug: 10910 442159 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff0c44\nDebug: 10911 442159 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff0d00\nDebug: 10912 442159 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff0d02\nInfo : 10913 442160 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff0c44 with size: 191\nDebug: 10914 442160 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663063343420776974682073697a653a203139310a#c8\nDebug: 10915 442160 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff0d03\nDebug: 10916 442160 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff0d03\nDebug: 10917 442160 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff0d04\nDebug: 10918 442160 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff0dc0\nInfo : 10919 442160 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff0d03 with size: 191\nDebug: 10920 442160 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663064303320776974682073697a653a203139310a#c4\nDebug: 10921 442160 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff0dc2\nDebug: 10922 442160 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff0dc2\nDebug: 10923 442160 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff0dc4\nDebug: 10924 442161 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff0e80\nInfo : 10925 442161 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff0dc2 with size: 191\nDebug: 10926 442161 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663064633220776974682073697a653a203139310a#c9\nDebug: 10927 442161 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff0e81\nDebug: 10928 442161 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff0e81\nDebug: 10929 442161 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff0e82\nDebug: 10930 442161 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff0e84\nInfo : 10931 442161 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff0e81 with size: 191\nDebug: 10932 442161 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663065383120776974682073697a653a203139310a#cb\nDebug: 10933 442161 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff0f40\nDebug: 10934 442161 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff0f40\nDebug: 10935 442162 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff0ffc\nDebug: 10936 442162 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff0ffe\nInfo : 10937 442162 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff0f40 with size: 191\nDebug: 10938 442162 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663066343020776974682073697a653a203139310a#c7\nDebug: 10939 442162 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff0fff\nDebug: 10940 442162 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff0fff\nDebug: 10941 442162 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff1000\nDebug: 10942 442163 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff10bc\nInfo : 10943 442163 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff0fff with size: 191\nDebug: 10944 442163 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663066666620776974682073697a653a203139310a#d5\nDebug: 10945 442163 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff10be\nDebug: 10946 442163 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff10be\nDebug: 10947 442163 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff10c0\nDebug: 10948 442163 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff117c\nInfo : 10949 442163 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff10be with size: 191\nDebug: 10950 442163 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663130626520776974682073697a653a203139310a#c8\nDebug: 10951 442163 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff117d\nDebug: 10952 442163 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff117d\nDebug: 10953 442164 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff117e\nDebug: 10954 442164 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff1180\nInfo : 10955 442164 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff117d with size: 191\nDebug: 10956 442164 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663131376420776974682073697a653a203139310a#ca\nDebug: 10957 442164 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff123c\nDebug: 10958 442164 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff123c\nDebug: 10959 442164 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff12f8\nDebug: 10960 442165 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff12fa\nInfo : 10961 442165 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff123c with size: 191\nDebug: 10962 442165 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663132336320776974682073697a653a203139310a#c6\nDebug: 10963 442165 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff12fb\nDebug: 10964 442165 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff12fb\nDebug: 10965 442165 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff12fc\nDebug: 10966 442165 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff13b8\nInfo : 10967 442165 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff12fb with size: 191\nDebug: 10968 442165 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663132666220776974682073697a653a203139310a#cb\nDebug: 10969 442165 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff13ba\nDebug: 10970 442165 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff13ba\nDebug: 10971 442165 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff13bc\nDebug: 10972 442166 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff1478\nInfo : 10973 442166 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff13ba with size: 191\nDebug: 10974 442166 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663133626120776974682073697a653a203139310a#c7\nInfo : 10975 442166 rtt.c:272 target_rtt_find_control_block(): KARL: addr: 0x1fff13ba match for buf_off: 18 char == 'S'\nDebug: 10976 442166 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a20616464723a2030783166666631336261206d6174636820666f72206275665f6f66663a2031382063686172203d3d202753270a#9f\nDebug: 10977 442166 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff1479\nDebug: 10978 442166 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff1479\nDebug: 10979 442166 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff147a\nDebug: 10980 442166 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff147c\nInfo : 10981 442167 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff1479 with size: 191\nDebug: 10982 442167 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663134373920776974682073697a653a203139310a#cf\nDebug: 10983 442167 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff1538\nDebug: 10984 442167 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff1538\nDebug: 10985 442167 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff15f4\nDebug: 10986 442167 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff15f6\nInfo : 10987 442167 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff1538 with size: 191\nDebug: 10988 442167 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663135333820776974682073697a653a203139310a#cb\nInfo : 10989 442167 rtt.c:272 target_rtt_find_control_block(): KARL: addr: 0x1fff1538 match for buf_off: 188 char == 'S'\nDebug: 10990 442167 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a20616464723a2030783166666631353338206d6174636820666f72206275665f6f66663a203138382063686172203d3d202753270a#0e\nInfo : 10991 442167 rtt.c:272 target_rtt_find_control_block(): KARL: addr: 0x1fff1538 match for buf_off: 189 char == 'E'\nDebug: 10992 442167 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a20616464723a2030783166666631353338206d6174636820666f72206275665f6f66663a203138392063686172203d3d202745270a#10\nInfo : 10993 442167 rtt.c:272 target_rtt_find_control_block(): KARL: addr: 0x1fff1538 match for buf_off: 190 char == 'G'\nDebug: 10994 442167 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a20616464723a2030783166666631353338206d6174636820666f72206275665f6f66663a203139302063686172203d3d202747270a#0a\nDebug: 10995 442167 target.c:2420 target_read_buffer(): reading buffer of 191 byte at 0x1fff15f7\nDebug: 10996 442167 target.c:1258 target_read_memory(): target_read_memory of 1 size with count: 1byte at 0x1fff15f7\nDebug: 10997 442167 target.c:1258 target_read_memory(): target_read_memory of 4 size with count: 47byte at 0x1fff15f8\nDebug: 10998 442168 target.c:1258 target_read_memory(): target_read_memory of 2 size with count: 1byte at 0x1fff16b4\nInfo : 10999 442168 rtt.c:258 target_rtt_find_control_block(): KARL: Reading buffer from addr: 0x1fff15f7 with size: 191\nDebug: 11000 442168 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a2052656164696e67206275666665722066726f6d20616464723a203078316666663135663720776974682073697a653a203139310a#d0\nInfo : 11001 442168 rtt.c:272 target_rtt_find_control_block(): KARL: addr: 0x1fff15f7 match for buf_off: 0 char == 'G'\nDebug: 11002 442168 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a20616464723a2030783166666631356637206d6174636820666f72206275665f6f66663a20302063686172203d3d202747270a#3f\nInfo : 11003 442168 rtt.c:272 target_rtt_find_control_block(): KARL: addr: 0x1fff15f7 match for buf_off: 1 char == 'E'\nDebug: 11004 442168 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a20616464723a2030783166666631356637206d6174636820666f72206275665f6f66663a20312063686172203d3d202745270a#3e\nInfo : 11005 442168 rtt.c:272 target_rtt_find_control_block(): KARL: addr: 0x1fff15f7 match for buf_off: 2 char == 'R'\nDebug: 11006 442168 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a20616464723a2030783166666631356637206d6174636820666f72206275665f6f66663a20322063686172203d3d202752270a#3d\nInfo : 11007 442168 rtt.c:272 target_rtt_find_control_block(): KARL: addr: 0x1fff15f7 match for buf_off: 3 char == ' '\nDebug: 11008 442168 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a20616464723a2030783166666631356637206d6174636820666f72206275665f6f66663a20332063686172203d3d202720270a#39\nInfo : 11009 442168 rtt.c:272 target_rtt_find_control_block(): KARL: addr: 0x1fff15f7 match for buf_off: 4 char == 'R'\nDebug: 11010 442168 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a20616464723a2030783166666631356637206d6174636820666f72206275665f6f66663a20342063686172203d3d202752270a#3f\nInfo : 11011 442168 rtt.c:272 target_rtt_find_control_block(): KARL: addr: 0x1fff15f7 match for buf_off: 5 char == 'T'\nDebug: 11012 442168 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a20616464723a2030783166666631356637206d6174636820666f72206275665f6f66663a20352063686172203d3d202754270a#42\nInfo : 11013 442168 rtt.c:272 target_rtt_find_control_block(): KARL: addr: 0x1fff15f7 match for buf_off: 6 char == 'T'\nDebug: 11014 442168 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a20616464723a2030783166666631356637206d6174636820666f72206275665f6f66663a20362063686172203d3d202754270a#43\nInfo : 11015 442168 rtt.c:276 target_rtt_find_control_block(): KARL: found a match at 0x1fff15f7 with bufoff 6 and id_length: 10\nDebug: 11016 442168 gdb_server.c:425 gdb_log_outgoing_packet(): [k64.cpu] {1} sending packet: $O4b41524c3a20666f756e642061206d6174636820617420307831666666313566372077697468206275666f6666203620616e642069645f6c656e6774683a2031300a#a7\nInfo : 11017 442168 rtt.c:139 rtt_start(): rtt: Control block found at 0x1fff15f4\n```\n\u003c/details\u003e\n\nFrames where the SEGGER RTT string come across are in 536 and 540.  (Note that there still appears to be some corruption here)\nMore details in the pcap of course.\n```\n536\n0000   05 02 01 53 45 47 47 53 45 47 47                  ...SEGGSEGG\n\n540\n0000   05 31 01 45 52 20 52 54 54 00 00 00 00 00 00 03   .1.ER RTT.......\n0010   00 00 00 03 00 00 00 24 e7 00 00 9c 16 ff 1f 00   .......$........\n```\n","author":{"url":"https://github.com/karlp","@type":"Person","name":"karlp"},"datePublished":"2025-10-06T14:25:54.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":6},"url":"https://github.com/28/orbtrace/issues/28"}

route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:dadb2a00-47b2-72b5-9252-39198a4e5e55
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-idB62A:46928:12AE10B:1A59DF6:6978D906
html-safe-nonce8a08ef3a6bf22dcb3a651c4c0e8a17e745f0b50934fd5440b9c830b38baef781
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCNjJBOjQ2OTI4OjEyQUUxMEI6MUE1OURGNjo2OTc4RDkwNiIsInZpc2l0b3JfaWQiOiI0MzcyMzIwODMxMjk2NTU5MzY2IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmacf3294d6fe6bc798d6674e72130f333fe3f3d4c2d23f52b65dfc705c6f24e3426
hovercard-subject-tagissue:3487563644
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/orbcode/orbtrace/28/issue_layout
twitter:imagehttps://opengraph.githubassets.com/48873685d5f7de46bd44e480da066071182755bd8ea9b3c14ae1f5361d91fe7e/orbcode/orbtrace/issues/28
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/48873685d5f7de46bd44e480da066071182755bd8ea9b3c14ae1f5361d91fe7e/orbcode/orbtrace/issues/28
og:image:altWe've discussed this somewhat on discord, but I've done some more testing and feel it's worthy of proper tracking here. Background Using OpenOCD's RTT commands, scanning for memory for the "SEGGER ...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernamekarlp
hostnamegithub.com
expected-hostnamegithub.com
None8a71ca1f7ab5436216e1df86f398ef7a51ed3152c90e3f7332fc70cf97fcb9d6
turbo-cache-controlno-preview
go-importgithub.com/orbcode/orbtrace git https://github.com/orbcode/orbtrace.git
octolytics-dimension-user_id36845956
octolytics-dimension-user_loginorbcode
octolytics-dimension-repository_id347476902
octolytics-dimension-repository_nwoorbcode/orbtrace
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id347476902
octolytics-dimension-repository_network_root_nwoorbcode/orbtrace
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
releaseeaed570eead52a9920afef75dc3eb6d826fdc5ef
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://patch-diff.githubusercontent.com/orbcode/orbtrace/issues/28#start-of-content
https://patch-diff.githubusercontent.com/
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Forbcode%2Forbtrace%2Fissues%2F28
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Forbcode%2Forbtrace%2Fissues%2F28
Sign up https://patch-diff.githubusercontent.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=orbcode%2Forbtrace
Reloadhttps://patch-diff.githubusercontent.com/orbcode/orbtrace/issues/28
Reloadhttps://patch-diff.githubusercontent.com/orbcode/orbtrace/issues/28
Reloadhttps://patch-diff.githubusercontent.com/orbcode/orbtrace/issues/28
orbcode https://patch-diff.githubusercontent.com/orbcode
orbtracehttps://patch-diff.githubusercontent.com/orbcode/orbtrace
Notifications https://patch-diff.githubusercontent.com/login?return_to=%2Forbcode%2Forbtrace
Fork 25 https://patch-diff.githubusercontent.com/login?return_to=%2Forbcode%2Forbtrace
Star 168 https://patch-diff.githubusercontent.com/login?return_to=%2Forbcode%2Forbtrace
Code https://patch-diff.githubusercontent.com/orbcode/orbtrace
Issues 6 https://patch-diff.githubusercontent.com/orbcode/orbtrace/issues
Pull requests 1 https://patch-diff.githubusercontent.com/orbcode/orbtrace/pulls
Actions https://patch-diff.githubusercontent.com/orbcode/orbtrace/actions
Projects 0 https://patch-diff.githubusercontent.com/orbcode/orbtrace/projects
Security 0 https://patch-diff.githubusercontent.com/orbcode/orbtrace/security
Insights https://patch-diff.githubusercontent.com/orbcode/orbtrace/pulse
Code https://patch-diff.githubusercontent.com/orbcode/orbtrace
Issues https://patch-diff.githubusercontent.com/orbcode/orbtrace/issues
Pull requests https://patch-diff.githubusercontent.com/orbcode/orbtrace/pulls
Actions https://patch-diff.githubusercontent.com/orbcode/orbtrace/actions
Projects https://patch-diff.githubusercontent.com/orbcode/orbtrace/projects
Security https://patch-diff.githubusercontent.com/orbcode/orbtrace/security
Insights https://patch-diff.githubusercontent.com/orbcode/orbtrace/pulse
New issuehttps://patch-diff.githubusercontent.com/login?return_to=https://github.com/orbcode/orbtrace/issues/28
New issuehttps://patch-diff.githubusercontent.com/login?return_to=https://github.com/orbcode/orbtrace/issues/28
read memory sometimes returns invalid datahttps://patch-diff.githubusercontent.com/orbcode/orbtrace/issues/28#top
https://github.com/karlp
https://github.com/karlp
karlphttps://github.com/karlp
on Oct 6, 2025https://github.com/orbcode/orbtrace/issues/28#issue-3487563644
RTT commandshttps://openocd.org/doc/html/General-Commands.html#Real-Time-Transfer-_0028RTT_0029
https://github.com/openocd-org/openocd/blob/master/src/target/rtt.c#L239-L281https://github.com/openocd-org/openocd/blob/master/src/target/rtt.c#L239-L281
orbtrace-rtt-rescan-chunk-20251006.pcapng.gzhttps://github.com/user-attachments/files/22723648/orbtrace-rtt-rescan-chunk-20251006.pcapng.gz
oocd-d3-log-failing-case.txthttps://github.com/user-attachments/files/22724199/oocd-d3-log-failing-case.txt
orbtrace-rtt-rescan-good191crossboundary-20251006.pcapng.gzhttps://github.com/user-attachments/files/22724074/orbtrace-rtt-rescan-good191crossboundary-20251006.pcapng.gz
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.