Tag: 调试

跨dll进行C#调试

我有一个项目,其调用结构类似于: 主要项目/应用 我的图书馆代码 别人的图书馆代码 我的图书馆代码 一切都是用C#编写的,我可以访问“别人的库代码”。 他们的代码不包含在我的项目中,因为它是开源的而不是我的代码。 我可以制作所有库的调试版本,我已经这样做了。 那个’别人的库代码(SELC,我猜?)是以一种heisen-bug的方式抛出一个exception,而我正试图追踪它并且可能会向项目维护者提交一个bug修复。 问题是,我的调试堆栈停在我的库代码中,并将SELC列为“外部”,我无法调试它。 我已经将pdb文件以及库的调试版本复制到我的应用程序的调试目录中,但仍然没有运气; 我似乎无法调试他们的代码,我根本无法进入它。 曾几何时,回到vs6天,我可以做到这一点 – 在两个不同的环境中同时打开两个不同的项目,并让调试器跟踪从一个项目到另一个项目的dll边界。 我认为function仍然存在,因为它只是非常有用。 有什么建议? 我已经找到了这个答案,但没有找到它,所以如果这是一个骗局,请告诉我在哪里看。

如何在调试时在内存中搜索字符串?

我试图在我正在使用visual studio 2010调试的程序的内存中搜索一个字符串。我正在尝试使用立即窗口来执行此操作,但每当我尝试时(.S -A 0x400000 0x400200“MyString”)它给出我错误“CXX0014:错误:缺少操作数”,我不知道它为什么或如何解决它。 任何帮助将不胜感激。

有没有办法用Visual Studio和PTVS调试嵌入在C#中的Python代码?

我已经创建了在C#中嵌入IronPython代码的代码 public ScriptEngine GetEngine() { if( _engine != null ) return _engine; _engine = Python.CreateEngine(); var paths = _engine.GetSearchPaths(); paths.Add( _pythonPath ); _engine.SetSearchPaths( paths ); var runtime = _engine.Runtime; runtime.LoadAssembly( typeof( CharacterCore ).Assembly ); return _engine; } public IAbility Movement() { var engine = GetEngine(); var script = engine.CreateScriptSourceFromFile( Path.Combine( _pythonPath, “movement.py” ) ); var […]

如何使用.bat启动的外部程序调试而不是VS2005中的.exe?

在我的c#项目的调试属性中,我选择了启动外部程序并选择了我希望附加调试器的程序的.exe。 但是,现在我需要从.bat文件而不是.exe启动程序,但VS2005似乎不允许这样做。 这可能吗? 编辑:澄清一下,我需要调试从.bat中生成的.exe。 不调试从“启动外部程序”启动的.exe,也执行.bat。 干杯!

如何在VS2010中调试已发布的XBAP文件?

我需要通过指定URL来调试完全信任的应用程序,或者理想情况下,从我打算将其部署到的Web应用程序中调试。 我尝试过以下方法: 从命令行运行“PresentationHost.exe -embedding”,通过Visual Studio附加。 IDE显示我的断点有效,直到我实际尝试加载.xbap文件,此时它显示没有加载符号。 没有一个断点被击中。 在其他地方提出几项建议之前,我已尝试过“mage -cc”。 项目的Debug面板中的硬编码URL,然后是F5。 或者,“PresentationHost.exe -embedding -debug”并附加到进程然后在IE中加载.xbap。 当页面出现时,两者都会导致以下错误: System.ArgumentException:不支持URI格式。 at System.IO.Path.NormalizePath(…) at System.IO.FileStream.Init(…) at System.IO.FileStream..ctor(…) at System.Windows.Interop.ApplicationLauncherXappDebug.GetIdFromManifest(…) at System.Windows.Interop.ApplicationLauncherXappDebug.GetApplicationIdentity() at System.Windows.Interop.ApplicationLauncherXappDebug.Initialize() at System.Windows.Interop.DocObjHost.MS.Internal.AppModel.IBrowserHostServices.Run(…)

如何使用VS 2010 Beta2在本地IIS 7.5上正确调试Web应用程序?

在开发Asp.net webapplication项目的同时,在本地IIS上运行它们时,我有点新鲜。 直到现在我使用了“使用Visual Studio开发服务器”选项。 我正在使用Visual Studio 2010 Beta 2。 编辑:不太复杂的示例代码 以下代码示例: List _list = new List(); _list.Add(“asd”); _list.Add(“asd2”); _list.Add(“asd3”); 现在我想使用_list调试/逐步执行某些代码行 。 在使用“使用Visual Studio开发服务器”时,我可以在快速监视中看到_list的内容。 如果我选择“使用本地IIS Web服务器”并通过同一段代码进行调试,则快速计会通过向我显示一个约10秒的旋转轮来尝试向我显示相同的值, 因为之前的function评估导致“ function评估”被取消时间到。 您必须继续执行以重新启用function评估 ‘消息。 之后我得到一个Windows错误对话框,其中包含w3wp.exe中发生的 ‘ unhandeld win32exception[844] Just-In Time调试器在没有必要的安全权限的情况下启动了 。 我以管理员身份运行Visual Studio 2010 Beta 2。 我按F5开始调试。 看来我无法以这种方式进行调试。 我是否必须以某种方式将VS调试附加到IIS进程? 如果是,怎么办? 我做错了什么,以及如何解决? 顺便说一句,VS 2010中的错误行为是新的吗? 我在VS 2008中从未表现过这种情况。

Visual Studio在调试期间如何显示System.Double?

尝试调试以下简单程序,并在每个步骤中将鼠标hover在x上(或者为x或其他任何内容添加“添加监视”)。 using System; using System.Globalization; static class Program { static double x; static void Main() { x = 2d; // now debugger shows “2.0”, as if it has used // x.ToString(“F1”, CultureInfo.InvariantCulture) x = 8.0 / 7.0; // now debugger shows “1.1428571428571428”, as if it had used // x.ToString(“R”, CultureInfo.InvariantCulture) // Note that 17 significant […]

无法调试使用Process.Start()启动的项目

我在同一个解决方案中有两个C#WinForm项目,我们称它们为A和B.项目A通过如下调用启动进程B. ProcessStartInfo psi = new ProcessStartInfo(); psi.FileName = Task.EXEFilename; psi.WorkingDirectory = Path.GetDirectoryName(Data.EXEFilename); Process.Start(psi); 进程B正确启动。 我想在调试A时调试进程B.我想在B中设置一个断点就足够了,但它永远不会被击中。 我已经validation了启动的进程是在B的bin / debug文件夹中。在这种情况下我不应该附加到进程来将调试从A切换到B?

Visual Studio调试器在混合调试模式下停止命中断点

我在MSVC2013中进行混合调试存在严重问题。 从本机C ++ DLL调用COM方法后,调试器不再停止在断点处。 代码结构 上图显示了代码的整体结构。 我有一个解决方案,包含大约10个C#项目,大约50个C ++本机项目,以及一个C ++ / CLI项目,作为托管和本地世界之间的桥梁。 启动项目是一个C#WPF项目( GUI Application ),它在内部调用C ++ / cli项目( Bridge ),后者又调用各种本机C ++ Dll( Various libraries )。 或者,我可以将C ++控制台应用程序( Service console app )作为启动项目,仅用于测试目的。 我已经实现了一个库来从Autodesk Inventor文档文件中导入一些信息。 Inventor Apprentice COM服务器(图片上的Inventor Apprentice )用于实现它,可以与Inventor View 2015一起免费下载。 作为第一步,导入是在独立的本机C ++控制台应用程序中实现的,一切正常。 然后它被改编为在整个基础架构中用作本机C ++ DLL( Import library ),并且调试地狱开始了。 症状 “调试坏了”。 在调试版本中,在Import library调用以下COM方法之后: auto pComponentDefinitions = […]

我可以配置NUnit,以便在运行测试时Debug.Fail不显示消息框吗?

我有这个属性: public SubjectStatus Status { get { return status; } set { if (Enum.IsDefined(typeof(SubjectStatus), value)) { status = value; } else { Debug.Fail(“Error setting Subject.Status”, “There is no SubjectStatus enum constant defined for that value.”); return; } } } 和这个unit testing [Test] public void StatusProperty_StatusAssignedValueWithoutEnumDefinition_StatusUnchanged() { Subject subject = new TestSubjectImp(“1”); // assigned by casting […]