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
Domain: patch-diff.githubusercontent.com
{"@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-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:dadb2a00-47b2-72b5-9252-39198a4e5e55 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | B62A:46928:12AE10B:1A59DF6:6978D906 |
| html-safe-nonce | 8a08ef3a6bf22dcb3a651c4c0e8a17e745f0b50934fd5440b9c830b38baef781 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCNjJBOjQ2OTI4OjEyQUUxMEI6MUE1OURGNjo2OTc4RDkwNiIsInZpc2l0b3JfaWQiOiI0MzcyMzIwODMxMjk2NTU5MzY2IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | f3294d6fe6bc798d6674e72130f333fe3f3d4c2d23f52b65dfc705c6f24e3426 |
| hovercard-subject-tag | issue:3487563644 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/orbcode/orbtrace/28/issue_layout |
| twitter:image | https://opengraph.githubassets.com/48873685d5f7de46bd44e480da066071182755bd8ea9b3c14ae1f5361d91fe7e/orbcode/orbtrace/issues/28 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/48873685d5f7de46bd44e480da066071182755bd8ea9b3c14ae1f5361d91fe7e/orbcode/orbtrace/issues/28 |
| og:image:alt | 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 ... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | karlp |
| hostname | github.com |
| expected-hostname | github.com |
| None | 8a71ca1f7ab5436216e1df86f398ef7a51ed3152c90e3f7332fc70cf97fcb9d6 |
| turbo-cache-control | no-preview |
| go-import | github.com/orbcode/orbtrace git https://github.com/orbcode/orbtrace.git |
| octolytics-dimension-user_id | 36845956 |
| octolytics-dimension-user_login | orbcode |
| octolytics-dimension-repository_id | 347476902 |
| octolytics-dimension-repository_nwo | orbcode/orbtrace |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 347476902 |
| octolytics-dimension-repository_network_root_nwo | orbcode/orbtrace |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | eaed570eead52a9920afef75dc3eb6d826fdc5ef |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width