{"id":273,"date":"2014-11-24T16:16:00","date_gmt":"2014-11-24T16:16:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/visualstudioalm\/2014\/11\/24\/introducing-the-child-process-debugging-power-tool\/"},"modified":"2022-05-26T01:53:09","modified_gmt":"2022-05-26T09:53:09","slug":"introducing-the-child-process-debugging-power-tool","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/devops\/introducing-the-child-process-debugging-power-tool\/","title":{"rendered":"Introducing the Child Process Debugging Power Tool"},"content":{"rendered":"<p>We\u2019ve heard <a href=\"http:\/\/visualstudio.uservoice.com\/forums\/121579-visual-studio\/suggestions\/3549376-attach-child-process-to-debugger-automatically\">your feedback<\/a> that you want the Visual Studio debugger to support child process debugging. Child process debugging means that when the application you are debugging creates another process, Visual Studio will detect this and automatically attach a debugger to the newly created process as well. To address this we\u2019re releasing a power tool for Visual Studio that will enable you to do just this. Some important things to note:<\/p>\n<ul>\n<li><a href=\"https:\/\/visualstudiogallery.msdn.microsoft.com\/a1141bff-463f-465f-9b6d-d29b7b503d7a\">Download the tool from the Visual Studio Gallery<\/a><\/li>\n<li>The power tool requires at least Visual Studio 2013 Update 2 (will work with any higher update version and Visual Studio 2015)<\/li>\n<li>The tool works for both launching projects (F5), and for attaching to processes<\/li>\n<li>It requires a native debugger. This means <strong>if you are debugging .NET code, you must choose to enable mixed mode debugging<\/strong> (so managed and native)\u2014this is done from the \u201cDebug\u201d tab on the project properties page (for most managed project types this is done by checking the \u201cEnable native code debugging\u201d checkbox under the \u201cEnable debuggers\u201d section of the page)<\/li>\n<\/ul>\n<p>Once you install the power tool from the Visual Studio Gallery, a new menu item will appear on the \u201cDebug\u201d menu under the \u201cOther Debug Targets\u201d sub-menu.<\/p>\n<p><img decoding=\"async\" style=\"border-width: 0px\" title=\"clip_image002\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2014\/11\/1738.clip_image002_thumb_09CF98FC.png\" alt=\"clip_image002\" width=\"628\" height=\"161\" border=\"0\" \/><\/p>\n<p>When you open the settings page, you\u2019ll see a checkbox to enable child process debugging. To turn the feature on, check this and click \u201cSave\u201d. Child process debugging is now enabled for all child processes, and will by default use the same debug engine settings you are debugging the parent process with (e.g. native only, or mixed mode).<\/p>\n<p><img decoding=\"async\" style=\"border-width: 0px\" title=\"clip_image004\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2014\/11\/3302.clip_image004_thumb_5B78A3FF.jpg\" alt=\"clip_image004\" width=\"603\" height=\"244\" border=\"0\" \/><\/p>\n<p>\u00a0<\/p>\n<p>If you want to customize any settings this tool give you the ability to do that.<\/p>\n<ul>\n<li>You can change the \u201cDebugger Type\u201d column to a specific debug engine rather than inheriting the same settings that you are debugging the parent process with<\/li>\n<li>You can add additional rows to customize the behavior for a specific process. For example: \n<ul>\n<li>If your process spawns multiple child processes but you only want to debug a single one (e.g. \u201cspecialprocess.exe\u201d, you can add a row for that and then set the action for the \u201c<All other processes>\u201d row to \u201cDo not debug\u201d<\/li>\n<li>If you spawn some managed and some native process, you can configure child process debugging to use the specific debug engine (\u201cDebugger Type\u201d) for each process rather than mixed mode debugging them both<\/li>\n<\/ul>\n<\/li>\n<li>Once you have finished configuring your settings remember to click the \u201cSave\u201d button to persist them<\/li>\n<\/ul>\n<p><img decoding=\"async\" style=\"border-width: 0px\" title=\"clip_image006\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2014\/11\/2671.clip_image006_thumb_048342FC.jpg\" alt=\"clip_image006\" width=\"628\" height=\"288\" border=\"0\" \/><\/p>\n<p>Finally the \u201cPersist settings to:\u201d dropdown gives you the ability to save your settings. The default behavior will be to add it your solution\u2019s .suo file (e.g. breakpoints are stored here). However you can optionally choose to export them to an XML file.<\/p>\n<p>Please note that this is a power tool, so is not an officially supported part of Visual Studio. However I\u2019d still love to hear your feedback in the comments section below, or through the <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/zzszcehe.aspx\">Send a Smile<\/a> feature in Visual Studio.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We\u2019ve heard your feedback that you want the Visual Studio debugger to support child process debugging. Child process debugging means that when the application you are debugging creates another process, Visual Studio will detect this and automatically attach a debugger to the newly created process as well. To address this we\u2019re releasing a power tool [&hellip;]<\/p>\n","protected":false},"author":68,"featured_media":45953,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1,225],"tags":[],"class_list":["post-273","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","category-git"],"acf":[],"blog_post_summary":"<p>We\u2019ve heard your feedback that you want the Visual Studio debugger to support child process debugging. Child process debugging means that when the application you are debugging creates another process, Visual Studio will detect this and automatically attach a debugger to the newly created process as well. To address this we\u2019re releasing a power tool [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/273","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/users\/68"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/comments?post=273"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/273\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media\/45953"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media?parent=273"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/categories?post=273"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/tags?post=273"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}