Browse Source

Fixed SD2-633: Trying to debug a non .NET executable throws an exception

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1079 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
David Srbecký 20 years ago
parent
commit
8b753ce99c
  1. 12
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Debugger/Internal/NativeMethods.cs
  2. 12
      src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Debugger/NDebugger.cs

12
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Debugger/Internal/NativeMethods.cs

@ -10,9 +10,6 @@ using System.Collections; @@ -10,9 +10,6 @@ using System.Collections;
using System.Runtime.InteropServices;
using System.Text;
using Debugger.Interop.CorDebug;
using Debugger.Interop.MetaData;
namespace Debugger
{
internal static class NativeMethods
@ -22,7 +19,14 @@ namespace Debugger @@ -22,7 +19,14 @@ namespace Debugger
public static extern bool CloseHandle(IntPtr handle);
[DllImport("mscoree.dll", CharSet=CharSet.Unicode, PreserveSig=false)]
public static extern int CreateDebuggingInterfaceFromVersion(int debuggerVersion, string debuggeeVersion, out ICorDebug cordbg);
public static extern int CreateDebuggingInterfaceFromVersion(int debuggerVersion, string debuggeeVersion, out Debugger.Interop.CorDebug.ICorDebug cordbg);
public static Debugger.Wrappers.CorDebug.ICorDebug CreateDebuggingInterfaceFromVersion(int debuggerVersion, string debuggeeVersion)
{
Debugger.Interop.CorDebug.ICorDebug rawCorDebug;
CreateDebuggingInterfaceFromVersion(debuggerVersion, debuggeeVersion, out rawCorDebug);
return new Debugger.Wrappers.CorDebug.ICorDebug(rawCorDebug);
}
[DllImport("mscoree.dll", CharSet=CharSet.Unicode)]
public static extern int GetCORVersion([Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder szName, Int32 cchBuffer, out Int32 dwLength);

12
src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Debugger/NDebugger.cs

@ -97,17 +97,13 @@ namespace Debugger @@ -97,17 +97,13 @@ namespace Debugger
/// If null, the version of the executing process will be used</param>
internal void InitDebugger(string debuggeeVersion)
{
string version;
if (debuggeeVersion != null) {
version = debuggeeVersion;
if (debuggeeVersion != null && debuggeeVersion.Length > 1) {
this.debuggeeVersion = debuggeeVersion;
} else {
version = GetDebuggerVersion();
this.debuggeeVersion = GetDebuggerVersion();
}
this.debuggeeVersion = version;
Debugger.Interop.CorDebug.ICorDebug rawCorDebug;
NativeMethods.CreateDebuggingInterfaceFromVersion(3, version, out rawCorDebug);
corDebug = new ICorDebug(rawCorDebug);
corDebug = NativeMethods.CreateDebuggingInterfaceFromVersion(3, this.debuggeeVersion);
managedCallback = new ManagedCallback(this);
managedCallbackProxy = new ManagedCallbackProxy(managedCallback);

Loading…
Cancel
Save