Quantcast
Channel: Visual Studio Integrate forum
Viewing all articles
Browse latest Browse all 4410

Process created in LaunchSuspended immediately Terminated

$
0
0

Hello,

I am writing a custom Debug Engine to debug on a remote device in VS2010 Ultimate on Windows 7.

I have a class which implements the IDebugEngine2 and IDebugEngineLaunch2 interfaces. I am able to step through LaunchSuspended which is called after calling LaunchDebugTargets in a Launcher which displays a window to select what to debug.

In LaunchSuspended I create an instance of a class which implements the IDebugProcess2 interface. My Launch Suspended looks like follows:

    int IDebugEngineLaunch2.LaunchSuspended(string pszServer, IDebugPort2 port, string exe, string args, string dir, string env, string options, enum_LAUNCH_FLAGS launchFlags, uint hStdInput, uint hStdOutput, uint hStdError, IDebugEventCallback2 ad7Callback, out IDebugProcess2 process)
        {
            process = null;
            if (!File.Exists(exe))
            {
                return 0;
            }

            m_package = exe;
            m_workingDir = dir;

            if (launchFlags.HasFlag(enum_LAUNCH_FLAGS.LAUNCH_DEBUG))
            {
                process = new DebugProcess(port, exe, dir, true);
            }
            else
            {
                process = new DebugProcess(port, exe, dir, false);
            }
            m_debuggedProcess = (process as DebugProcess);

            return VSConstants.S_OK;
        }

I then see that GetPhysicalProcessId, then GetProcessId are called on the DebugProcess followed by Terminate. The call stack when Terminate is called is the following:

>	Debugger.dll!Debugger.Engine.DebugProcess.Microsoft.VisualStudio.Debugger.Interop.IDebugProcess2.Terminate() Line 75	C#
 	[Native to Managed Transition]	
 	[Managed to Native Transition]	
 	Microsoft.VisualStudio.TraceLogPackage.dll!Microsoft.VisualStudio.TraceLogPackage.DebugLaunchHook._OnLaunchDebugTargets(uint debugTargetCount, Microsoft.VisualStudio.Shell.Interop.VsDebugTargetInfo3[] debugTargets, Microsoft.VisualStudio.Shell.Interop.VsDebugTargetProcessInfo[] launchResults = {Microsoft.VisualStudio.Shell.Interop.VsDebugTargetProcessInfo[1]}) + 0x3b8 bytes	
 	Microsoft.VisualStudio.TraceLogPackage.dll!Microsoft.VisualStudio.TraceLogPackage.DebugLaunchHook.OnLaunchDebugTargets.AnonymousMethod__7() + 0x14 bytes	
 	Microsoft.VisualStudio.IntelliTrace.dll!Microsoft.VisualStudio.Diagnostics.Common.ILExceptionFilter.Invoke(Microsoft.VisualStudio.Diagnostics.Common.ILExceptionFilter.InvocationTarget target, Microsoft.VisualStudio.Diagnostics.Common.ILExceptionFilter.FilterFunction predicate = {Method = {System.Reflection.RuntimeMethodInfo}}, Microsoft.VisualStudio.Diagnostics.Common.ILExceptionFilter.HandlerFunction catchBlock = {Method = {System.Reflection.RuntimeMethodInfo}}) + 0x29 bytes	
 	Microsoft.VisualStudio.IntelliTrace.dll!Microsoft.VisualStudio.Diagnostics.Common.ExceptionHelper.Invoke(Microsoft.VisualStudio.Diagnostics.Common.ILExceptionFilter.InvocationTarget target) + 0x82 bytes	
 	[Native to Managed Transition]	
 	[Managed to Native Transition]	
 	Launcher.dll!Launcher.Connect.LaunchDebugTarget(string filePath = "[bundle to run]", string workingDir = "[dir]") Line 180 + 0x14 bytes	C#


I have verified that all members of the interfaces are implemented in the 2 classes. What am I missing? Do I need to create a custom PortSupplier since I am not launching a local process to debug?

After continuing from Terminate a message box is displayed with the text "Cannot detach from one or more processes: [N/A]: The object Invoked has disconnected from it's clients.


Viewing all articles
Browse latest Browse all 4410

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>