Debugger only shows assembly

Hi, when I use make debug to debug my plugins, it shows only assembly, not the source code.

* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
    frame #0: 0x0000000000657db5 plugin.dylib`PolyRecDisplay::drawMenuText(rack::widget::Widget::DrawArgs const&) + 85
plugin.dylib`PolyRecDisplay::drawMenuText:
->  0x657db5 <+85>: movups (%rcx), %xmm0
    0x657db8 <+88>: movaps %xmm0, -0x40(%rbp)
    0x657dbc <+92>: movb   0x10(%rcx), %dl
    0x657dbf <+95>: movb   %dl, -0x30(%rbp)

But if I set a breakpoint at main(), it shows the source:

* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
    frame #0: 0x00000000000123aa Rack`main at string:1560:26 [opt]
   1557	        {
   1558	            size_type (&__a)[__n_words] = __r_.first().__r.__words;
   1559	            for (unsigned __i = 0; __i < __n_words; ++__i)
-> 1560	                __a[__i] = 0;
   1561	        }
   1562	
   1563	    template <size_type __a> static

Am I missing a step? How can I let it show my source code? Iā€™m quite new to debugging C++. Many thanks

If you make with make inst on macos the makefile will Strip your symbols which can lose locations

Build your dylib and move it in place with a manual copy and see if it works instead.

Debugging rack on Rosetta is tricky though I find; but doing an install once then updating my dylib outside of make inst has let me keep line numbers and so on

2 Likes