% lldb -- fastspin -2b -l ~/flexgui/samples/blink1.spin (lldb) target create "fastspin" Current executable set to '/Users/altergator/source/flexgui/spin2cpp/build/fastspin' (x86_64). (lldb) settings set -- target.run-args "-2b" "-l" "/Users/altergator/flexgui/samples/blink1.spin" (lldb) r Process 18760 launched: '/Users/altergator/source/flexgui/spin2cpp/build/fastspin' (x86_64) Propeller Spin/PASM Compiler 'FastSpin' (c) 2011-2020 Total Spectrum Software Inc. Version 4.2.4-beta-8bb44ef7 Compiled on: Jun 28 2020 blink1.spin blink1.p2asm Process 18760 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0) frame #0: 0x00007fff729aefdc libsystem_c.dylib`__chk_fail_overlap.cold.1 + 16 libsystem_c.dylib`__chk_fail_overlap.cold.1: -> 0x7fff729aefdc <+16>: ud2 libsystem_c.dylib`OSAtomicDequeue: 0x7fff729aefde <+0>: jmpq *0x266b5b8c(%rip) ; (void *)0x00007fff72ad6620: OSAtomicDequeue libsystem_c.dylib`OSAtomicEnqueue: 0x7fff729aefe4 <+0>: jmpq *0x266b5b8e(%rip) ; (void *)0x00007fff72ad65fc: OSAtomicEnqueue libsystem_c.dylib`_Block_copy: 0x7fff729aefea <+0>: jmpq *0x266b5b90(%rip) ; (void *)0x00007fff7292e96b: _Block_copy Target 0: (fastspin) stopped. (lldb) breakpoint set --file outlst.c --line 307 Breakpoint 1: where = fastspin`CompressListing + 350 at outlst.c:307:17, address = 0x000000010003ba6e (lldb) r There is a running process, kill it and restart?: [Y/n] y Process 18766 exited with status = 9 (0x00000009) Process 18815 launched: '/Users/altergator/source/flexgui/spin2cpp/build/fastspin' (x86_64) Propeller Spin/PASM Compiler 'FastSpin' (c) 2011-2020 Total Spectrum Software Inc. Version 4.2.4-beta-8bb44ef7 Compiled on: Jun 28 2020 blink1.spin blink1.p2asm Process 18815 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1 frame #0: 0x000000010003ba6e fastspin`CompressListing(listing="\n00000 | \n00000 | #line 1 \"/Users/altergator/flexgui/samples/blink1.p2asm\"\n00000 | ' _clkfreq = 160_000_000\n00000 | con\n00000 | \t_clkfreq = 160000000\n00000 | ' pin = 56\n00000 | \tpin = 56\n00000 | ' delay = _clkfreq / 10\n00000 | \tdelay = 16000000\n00000 | dat\n00000 000 01 EC 63 FD | \tcogid\tpa\n00004 001 02 00 00 FF \n00008 002 00 EC E7 FC | \tcoginit\tpa,##$400\n0000c 00 00 00 00 | \torgh\t$10\n00010 00 00 00 00 | \tlong\t0\t'reserved\n00014 00 00 00 00 | \tlong\t0 ' clock frequency: will default to 160000000\n00018 00 00 00 00 | \tlong\t0 ' clock mode: will default to $10007fb\n0001c 00 00 00 00 \n ... \n00024 00 00 00 00 \n00028 00 00 00 00 \n0002c 00 00 00 00 \n00030 00 00 00 00 \n00034 00 00 00 00 \n00038 00 00 00 00 \n0003c 00 00 00 00 \n00040 00 00 00 00 \n00044 00 00 00 00 \n00048 00 00 00 00 \n0"...) at outlst.c:307:17 304 memset(line1, ' ', LINE_ADDRLEN + LINE_HEXLEN); 305 memset(line1 + 6, '.', 3); 306 line1 = strchr(line1, '\n') + 1; -> 307 strcpy(line1, line2); 308 delta = line2 - line1; 309 line2 = line1; 310 line3 -= delta; Target 0: (fastspin) stopped. (lldb) frame variable line1 (char *) line1 = 0x0000000100827919 "00024 00 00 00 00 \n00028 00 00 00 00 \n0002c 00 00 00 00 \n00030 00 00 00 00 \n00034 00 00 00 00 \n00038 00 00 00 00 \n0003c 00 00 00 00 \n00040 00 00 00 00 \n00044 00 00 00 00 \n00048 00 00 00 00 \n0004c 00 00 00 00 \n00050 00 00 00 00 \n00054 00 00 00 00 \n00058 00 00 00 00 \n0005c 00 00 00 00 \n00060 00 00 00 00 \n00064 00 00 00 00 \n00068 00 00 00 00 \n0006c 00 00 00 00 \n00070 00 00 00 00 \n00074 00 00 00 00 \n00078 00 00 00 00 \n0007c 00 00 00 00 \n00080 00 00 00 00 \n00084 00 00 00 00 \n00088 00 00 00 00 \n0008c 00 00 00 00 \n00090 00 00 00 00 \n00094 00 00 00 00 \n00098 00 00 00 00 \n0009c 00 00 00 00 \n000a0 00 00 00 00 \n000a4 00 00 00 00 \n000a8 00 00 00 00 \n000ac 00 00 00 00 \n000b0 00 00 00 00 \n000b4 00 00 00 00 \n000b8 00 00 00 00 \n000bc 00 00 00 00 \n000c0 00 00 00 00 \n000c4 00 00 00 00 \n000c8 00 00 00 00 \n000cc 00 00 00 00 \n000d0 00 00 00 00 \n000d4 00"... (lldb) frame variable line2 (char *) line2 = 0x0000000100828f1c "003f8 00 00 00 00 \n003fc 00 00 00 00 | \torgh\t$400\n00400 000 | \torg\t0\n00400 000 | entry\n00400 000 00 F0 0F F2 | \tcmp\tptra, #0 wz\n00404 001 8C 00 90 5D | if_ne\tjmp\t#spininit\n00408 002 43 F0 03 F6 | \tmov\tptra, ptr_stackspace_\n0040c 003 14 EC 0F FB | \trdlong\tpa, #20 wz\n00410 004 6C 00 90 5D | if_ne\tjmp\t#skip_clock_set_\n00414 005 00 00 64 FD | \thubset\t#0\n00418 006 03 80 80 FF \n0041c 007 00 F0 67 FD | \thubset\t##16779256\n00420 008 86 01 80 FF \n00424 009 1F 80 66 FD | \twaitx\t##200000\n00428 00a 03 80 00 FF \n0042c 00b FB ED 07 F6 | \tmov\tpa, ##16779259\n00430 00c 00 EC 63 FD | \thubset\tpa\n00434 00d 18 EC 67 FC | \twrlong\tpa, #24\n00438 00e B4 C4 84 FF \n0043c 00f 14 00 6C FC | \twrlong\t##160000000, #20\n00440 010 3C 00 90 FD | \tjmp\t#skip_clock_set_\n00444 011 00 00 00 00 \n00448 012 00 00 00 00 \n0044c 013 00 00 00 00 \n00450 014 00 00 00 00 \n00454 015 00 00 00 00 \n00458 016 00 00 00 00 \n0045c 017 00 00 00 00 \n00460 018 00 00 00 00 \n00464 019 00 00 00 00 \n00468 01a 00 00 00 00 \n0046c 01b 00 00 00 "... (lldb) print printf (line2) 003f8 00 00 00 00 003fc 00 00 00 00 | orgh $400 00400 000 | org 0 00400 000 | entry 00400 000 00 F0 0F F2 | cmp ptra, #0 wz 00404 001 8C 00 90 5D | if_ne jmp #spininit 00408 002 43 F0 03 F6 | mov ptra, ptr_stackspace_ 0040c 003 14 EC 0F FB | rdlong pa, #20 wz 00410 004 6C 00 90 5D | if_ne jmp #skip_clock_set_ 00414 005 00 00 64 FD | hubset #0 00418 006 03 80 80 FF 0041c 007 00 F0 67 FD | hubset ##16779256 00420 008 86 01 80 FF 00424 009 1F 80 66 FD | waitx ##200000 00428 00a 03 80 00 FF 0042c 00b FB ED 07 F6 | mov pa, ##16779259 00430 00c 00 EC 63 FD | hubset pa 00434 00d 18 EC 67 FC | wrlong pa, #24 00438 00e B4 C4 84 FF 0043c 00f 14 00 6C FC | wrlong ##160000000, #20 00440 010 3C 00 90 FD | jmp #skip_clock_set_ 00444 011 00 00 00 00 00448 012 00 00 00 00 0044c 013 00 00 00 00 00450 014 00 00 00 00 00454 015 00 00 00 00 00458 016 00 00 00 00 0045c 017 00 00 00 00 00460 018 00 00 00 00 00464 019 00 00 00 00 00468 01a 00 00 00 00 0046c 01b 00 00 00 00 00470 01c 00 00 00 00 00474 01d 00 00 00 00 00478 01e 00 00 00 00 0047c 01f 00 00 00 00 | orgf 32 00480 020 | skip_clock_set_ 00480 020 14 05 C0 FD | calla #_demo 00484 021 | cogexit 00484 021 38 01 80 FF 00488 022 1F 00 66 FD | waitx ##160000 0048c 023 01 8A 60 FD | cogid arg01 00490 024 03 8A 60 FD | cogstop arg01 00494 025 | spininit 00494 025 00 85 04 FB | rdlong objptr, ptra 00498 026 04 F0 07 F1 | add ptra, #4 0049c 027 00 89 04 FB | rdlong result1, ptra 004a0 028 04 F0 07 F1 | add ptra, #4 004a4 029 00 8B 04 FB | rdlong arg01, ptra 004a8 02a 04 F0 07 F1 | add ptra, #4 004ac 02b 00 8D 04 FB | rdlong arg02, ptra 004b0 02c 04 F0 07 F1 | add ptra, #4 004b4 02d 00 8F 04 FB | rdlong arg03, ptra 004b8 02e 04 F0 07 F1 | add ptra, #4 004bc 02f 00 91 04 FB | rdlong arg04, ptra 004c0 030 10 F0 87 F1 | sub ptra, #16 004c4 031 2E 88 60 FD | calla result1 004c8 032 B8 FF 9F FD | jmp #cogexit 004cc 033 | FCACHE_LOAD_ 004cc 033 5F 83 04 FB | rdlong fcache_tmpb_, --ptra 004d0 034 F6 83 00 F1 | add fcache_tmpb_, pa 004d4 035 61 83 64 FC | wrlong fcache_tmpb_, ptra++ 004d8 036 F6 83 80 F1 | sub fcache_tmpb_, pa 004dc 037 02 EC 47 F0 | shr pa, #2 004e0 038 F6 81 00 F6 | mov fcache_tmpa_, pa 004e4 039 00 81 04 F1 | add fcache_tmpa_, #$100 004e8 03a 40 7E 30 FC | wrlut reta_instr_, fcache_tmpa_ 004ec 03b 01 EC 87 F1 | sub pa, #1 004f0 03c 29 EC 63 FD | setq2 pa 004f4 03d 41 00 02 FB | rdlong $100-0, fcache_tmpb_ 004f8 03e 00 03 80 FD | jmp #\$300 ' jmp to cache 004fc 03f | reta_instr_ 004fc 03f 2E 00 64 FD | reta 00500 040 | fcache_tmpa_ 00500 040 00 00 00 00 | long 0 00504 041 | fcache_tmpb_ 00504 041 00 00 00 00 | long 0 00508 042 | 00508 042 | objptr 00508 042 38 05 00 00 | long @objmem 0050c 043 | ptr_stackspace_ 0050c 043 38 05 00 00 | long @stackspace 00510 044 | result1 00510 044 00 00 00 00 | long 0 00514 045 | COG_BSS_START 00514 045 | fit 480 00514 | orgh 00514 | hubentry 00514 | 00514 | ' 00514 | ' pub demo 00514 | _demo 00514 | ' dirb[pin-32] := 1 00514 18 F6 27 F4 | bith dirb, #24 00518 | ' repeat 00518 00 0A DC FC | rep @LR__0001, #0 0051c | ' !outb[pin-32] 0051c 18 FA E7 F4 | bitnot outb, #24 00520 | ' waitcnt(cnt + delay) 00520 1A 8A 60 FD | getct arg01 00524 12 7A 00 FF 00528 00 8A 64 FA | addct1 arg01, ##16000000 0052c 24 22 60 FD | waitct1 00530 | LR__0001 00530 | _demo_ret 00530 2E 00 64 FD | reta 00534 | hubexit 00534 21 00 80 FD | jmp #cogexit 00538 | objmem 00538 | long 0[0] 00538 | stackspace 00538 00 00 00 00 | long 0[1] 0053c 045 | org COG_BSS_START 0053c 045 | arg01 0053c 045 | res 1 0053c 046 | arg02 0053c 046 | res 1 0053c 047 | arg03 0053c 047 | res 1 0053c 048 | arg04 0053c 048 | res 1 (int) $4 = 4388