if (m_globalBase == 0)
{
- // Caller didn't specify which CLR to debug. This supports Whidbey SOS cases, so we should
- // be using a legacy data target.
+ // Caller didn't specify which CLR to debug, we should be using a legacy data target.
if (m_pLegacyTarget == NULL)
{
DacError(E_INVALIDARG);
UNREACHABLE();
}
- // Since this is Whidbey, assume there's only 1 CLR named "mscorwks.dll" and pick that.
- IfFailRet(m_pLegacyTarget->GetImageBase(MAIN_CLR_DLL_NAME_W, &base));
+ IfFailRet(m_pLegacyTarget->GetImageBase(TARGET_MAIN_CLR_DLL_NAME_W, &base));
m_globalBase = TO_TADDR(base);
}
"error. If you really want to try and use the mimatched DLLs, you can disable this\n"\
"check by setting COMPlus_DbgDACSkipVerifyDlls=1. However, using a mismatched DAC\n"\
"DLL will usually result in arbitrary debugger failures.\n",
- MAIN_CLR_DLL_NAME_A,
- MAIN_CLR_DLL_NAME_A,
- MAIN_CLR_DLL_NAME_A,
+ TARGET_MAIN_CLR_DLL_NAME_A,
+ TARGET_MAIN_CLR_DLL_NAME_A,
+ TARGET_MAIN_CLR_DLL_NAME_A,
szExpectedTime,
- MAIN_CLR_DLL_NAME_A,
+ TARGET_MAIN_CLR_DLL_NAME_A,
szActualTime);
_ASSERTE_MSG(false, szMsgBuf);
}
if (FAILED(status = GetMachineAndResourceSectionRVA(m_pTarget, m_globalBase, NULL, &resourceSectionRVA)))
{
- _ASSERTE_MSG(false, "DAC fatal error: can't locate resource section in " MAIN_CLR_DLL_NAME_A);
+ _ASSERTE_MSG(false, "DAC fatal error: can't locate resource section in " TARGET_MAIN_CLR_DLL_NAME_A);
return CORDBG_E_MISSING_DEBUGGER_EXPORTS;
}
resourceSectionRVA, (DWORD)RT_RCDATA, _WIDE(DACCESS_TABLE_RESOURCE), 0,
&rsrcRVA, &rsrcSize)))
{
- _ASSERTE_MSG(false, "DAC fatal error: can't locate DAC table resource in " MAIN_CLR_DLL_NAME_A);
+ _ASSERTE_MSG(false, "DAC fatal error: can't locate DAC table resource in " TARGET_MAIN_CLR_DLL_NAME_A);
return CORDBG_E_MISSING_DEBUGGER_EXPORTS;
}
if (FAILED(status = ReadFromDataTarget(m_pTarget, m_globalBase + rsrcRVA, (BYTE*)rsrcData, rsrcSize)))
{
- _ASSERTE_MSG(false, "DAC fatal error: can't load DAC table resource from " MAIN_CLR_DLL_NAME_A);
+ _ASSERTE_MSG(false, "DAC fatal error: can't load DAC table resource from " TARGET_MAIN_CLR_DLL_NAME_A);
return CORDBG_E_MISSING_DEBUGGER_EXPORTS;
}
#define MAIN_CLR_DLL_NAME_W MAKEDLLNAME_W(MAIN_CLR_MODULE_NAME_W)
#define MAIN_CLR_DLL_NAME_A MAKEDLLNAME_A(MAIN_CLR_MODULE_NAME_A)
-
-#define MSCOREE_SHIM_W MAIN_CLR_DLL_NAME_W
-#define MSCOREE_SHIM_A MAIN_CLR_DLL_NAME_A
+#define TARGET_MAIN_CLR_DLL_NAME_W MAKE_TARGET_DLLNAME_W(MAIN_CLR_MODULE_NAME_W)
+#define TARGET_MAIN_CLR_DLL_NAME_A MAKE_TARGET_DLLNAME_A(MAIN_CLR_MODULE_NAME_A)
#define SWITCHOUT_HANDLE_VALUE ((HANDLE)(LONG_PTR)-2)
#define CROSSBITNESS_COMPILE
#endif
+// Target platform-specific library naming
+//
+#ifdef TARGET_WINDOWS
+#define MAKE_TARGET_DLLNAME_W(name) name W(".dll")
+#define MAKE_TARGET_DLLNAME_A(name) name ".dll"
+#else // TARGET_WINDOWS
+#ifdef TARGET_OSX
+#define MAKE_TARGET_DLLNAME_W(name) W("lib") name W(".dylib")
+#define MAKE_TARGET_DLLNAME_A(name) "lib" name ".dylib"
+#else
+#define MAKE_TARGET_DLLNAME_W(name) W("lib") name W(".so")
+#define MAKE_TARGET_DLLNAME_A(name) "lib" name ".so"
+#endif
+#endif // TARGET_WINDOWS
+
+#ifdef UNICODE
+#define MAKE_TARGET_DLLNAME(name) MAKE_TARGET_DLLNAME_W(name)
+#else
+#define MAKE_TARGET_DLLNAME(name) MAKE_TARGET_DLLNAME_A(name)
+#endif
+
#if !defined(HOST_ARM) && defined(TARGET_ARM) // Non-ARM Host managing ARM related code
#ifndef CROSS_COMPILE