I know breaking into the disassembly window can happen if your program tries to call out to some outside system dll with no pdb file (ntdll for example), however this is currently happening for every function call I step into with F11. This is occurring with themachinery project which is built from a premake file (which also creates a visual studio solution). The modules window shows that my pdb files are loaded and I can still view things in the watch window and step over fine (F10). Here's the relevant information:
cl.exe version - 19.26.28805
remedy version - 0.3.6.3
compiler options produced by premake file:
/c /IW:\THEMACHINERY /I"W:\THEMACHINERY\LIB\ASSIMP-5.1.2-WIN64\INCLUDE" /Zi /JMC /nologo /W4 /WX /diagnostics:column /Od /Ob2 /D TM_OS_WINDOWS /D _CRT_SECURE_NO_WARNINGS /D TM_CPU_X64 /D TM_CPU_AVX /D TM_CPU_SSE /D TM_CONFIGURATION_DEBUG /D DEBUG /D TM_LINKS_FOUNDATION /D _UNICODE /D UNICODE /Gm- /EHsc /RTC1 /MTd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"OBJ\WIN64\DEBUG\\" /Fd"OBJ\WIN64\DEBUG\VC142.PDB" /Gd /TC /wd4057 /wd4100 /wd4152 /wd4200 /wd4201 /wd4204 /wd4206 /wd4214 /wd4221 /wd4702 /wd4189 /FC /utf-8 W:\THEMACHINERY\GAME_PROJECT\SOURCE\START.C
linker options:
/OUT:"..\..\BIN\DEBUG\START.EXE" /INCREMENTAL:NO /NOLOGO /LIBPATH:W:\THEMACHINERY\LIB\VS2019\DEBUG /LIBPATH:W:\THEMACHINERY\BIN\DEBUG /LIBPATH:"W:\THEMACHINERY\LIB\ASSIMP-5.1.2-WIN64\LIB" /WX FOUNDATION.LIB KERNEL32.LIB USER32.LIB GDI32.LIB WINSPOOL.LIB COMDLG32.LIB ADVAPI32.LIB SHELL32.LIB OLE32.LIB OLEAUT32.LIB UUID.LIB ODBC32.LIB ODBCCP32.LIB /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG:FULL /PDB:"..\..\BIN\DEBUG\START.PDB" /SUBSYSTEM:WINDOWS /TLBID:1 /ENTRY:"mainCRTStartup" /DYNAMICBASE /NXCOMPAT /IMPLIB:"..\..\BIN\DEBUG\START.LIB" /MACHINE:X64 /ignore:4099 OBJ\WIN64\DEBUG\START.OBJ
it seems the main ones are there: /INCREMENTAL:NO /DEBUG:FULL /Od
so not sure what the issue is.
This is caused by the /JMC compiler option.
https://docs.microsoft.com/en-us/cpp/build/reference/jmc?view=msvc-170
The Visual Studio Just My Code settings specify whether the Visual Studio debugger steps over system, framework, library, and other non-user calls. The /JMC compiler option enables support for Just My Code debugging in your native C++ code. When /JMC is enabled, the compiler inserts calls to a helper function, __CheckForDebuggerJustMyCode, in the function prolog. The helper function provides hooks that support Visual Studio debugger Just My Code step operations.
We could consider supporting this option at some point but for now removing /JMC will fix the problem you are seeing.
Thanks Jason.