草庐IT

manual_adv_debug_console

全部标签

c# - .NET/C# 调试 : How to debug a classical heisenbug?

最近,我遇到了一个经典的Heisenbug.情况是这样的:我在一个面板中有一个树列表,即主视图,在右侧的另一个面板中有一个详细View,显示有关当前选定树节点的信息。(与Windows资源管理器非常相似。)当我向树中添加一个新节点时(想想在Windows资源管理器中右键单击一个文件夹并说“新建->文件夹”),新创建的节点被选中。问题是:右侧的详细View应该更新以显示新节点。然而,事实并非如此。我必须切换到另一个树节点一次,然后才能在详细View中看到有关新节点的信息。该错误很容易重现,并且在“发布”和“调试”构建配置中都会发生。但是:一旦我在事件处理程序中设置断点(用于“添加新节点”

c# - 模拟 'System.Console' 行为

是否有一种标准方法可以通过针对接口(interface)而不是System.Console进行编程来使C#控制台应用程序可单元测试?例如,使用IConsole界面?你做过吗,用的是什么方法?当您的应用程序需要写入标准输出时,您是否公开了事件? 最佳答案 我认为您使用接口(interface)的方法可行,但我认为我不会使用事件。假设应用程序不接受命令行参数以外的用户输入,我可能会使用类似这样的东西来包装Console.Write/Console.WriteLine:publicinterfaceIConsoleWriter{voidW

c# - 在项目中添加一个EXE文件,这样它就会像DLL一样被复制到Bin/Debug文件夹中?

我需要我的C#项目在执行期间启动另一个EXE程序。这个可执行文件需要放在与构建解决方案时放置的C#程序相同的文件夹中,例如,调试文件夹——就像DLL文件引用——这样当我的团队成员从TFScheckout项目时,并且调试,当我的C#代码尝试调用它时,找到了EXE。但是,EXE本身不是引用,因此不能将其添加为引用,即使我希望以与引用相同的方式复制它。这个问题有没有合理的解决方案?提前致谢。 最佳答案 您可以转到文件的属性,并在“复制到输出目录”下选择,copyifnewer 关于c#-在项目

c# - 使 NLog.config 文件从 (d :\dev) instead of "\bin\debug\"

我在特定的DLL中使用Nlog进行日志记录。然后在另一个应用程序中使用该DLL(使用System.Reflection.Assembly.LoadFrom(path+a.dll)动态加载它)。我手动将Nlog.dll和Nlog.config文件放在Path文件夹中,应用程序可以正常执行,但不会记录任何消息。但是,当我继续将Nlog.config文件手动放入应用程序目录(\bin\debug\)时,会记录消息。谁能告诉我如何将Nlog.Config的搜索位置指向不同于\bin\debug\的目录(d:\dev)。 最佳答案 下面是我如

c# - 在对象内部以 Debug模式搜索

调试C#应用程序时是否可以在对象内部搜索值和/或其他字段?我正在寻找可以在多个级别下钻对象的深度搜索。我正在寻找的是一种在非常复杂的对象(调试时,例如在“快速监视”窗口中)内部进行搜索(如F3用于文档搜索)的方法。 最佳答案 你可以使用OzCode(VisualStudio的附加组件),它可以让您search对于您想从悬停数据提示或QuickWatch窗口中查看的成员。请参见以下屏幕截图中的示例:全面披露:我是“OzCode”的共同创建者。 关于c#-在对象内部以Debug模式搜索,我们

c# - 在 Visual Studio 的 Debug模式下获取问号而不是属性名称和值

我的问题是:在VisualStudio的Debug模式下,我看不到属性名称及其值。有什么建议么?UPD此错误/功能可在大学PC中重现。UPD(15.06.2012)基类放在独立的库中。基类是抽象的。并且...在对源文件(在屏幕截图中)进行更改然后运行项目之后,Debug两次工作正常。请注意立即窗口无法计算此表达式。MailProcessingViewModelContext继承了我在UPD顶部提到的那个基类。 最佳答案 这是VisualStudio中的一个错误,当您使用鼠标滚动属性列表时会导致该错误。请点击菜单底部的向下箭头。

javascript - Casperjs 捕获 console.log 和 console.error

我正在尝试通过casperjs捕获站点console.log和console.error。在console.log的情况下,我有工作代码:casper.on('remote.message',function(message){this.echo('remotemessagecaught:'+message);});但我不知道如何捕获console.error。我需要这个来捕获任何资源错误(比如找不到图像)。 最佳答案 还有page.error处理程序:casper.on("page.error",function(msg,trac

javascript - 如何使用 console.trace() 记录 js 堆栈跟踪但保持折叠状态

我想在我的应用程序中记录某些函数调用的堆栈跟踪。我喜欢console.trace()呈现数据的方式,但它总是将数据吐出到控制台扩展。如果你有几十个日志,这很快就会变得困惑。有些人建议使用logError().stack,其他人建议使用console.error(),其他人建议使用Error.captureStackTrace()。但所有这些都有我不喜欢的东西。console.error使控制台困惑,很难看到真正的错误。其他人没有打印出漂亮或可用的堆栈。应该有一种方法可以简单地让console.trace()默认折叠。 最佳答案 答案

launch: program ‘c: \build\Debug\outDebug‘ does not exist

本想着用VSCode编写编译C语言程序,顺着网上的教程一步步操作,后来却遇到launch:program‘c:\build\Debug\outDebug’doesnotexist这样的一个提示框,怎么改launch.json文件都不行,后来看到网上的文章:链接:VScode找不到任务c/c++:g++.exe生成活动文件自己操作了一下,运行.c文件成功了。下面来看看具体操作。1.打开一个VSCode窗口。2.选择“文件(F)->打开文件夹…”这里可以选一个位置,然后新建一个文件夹,我这里选择位置是桌面,文件夹名为b。点击“选择文件夹”。VSCode里面生成了一个名为B的文件夹。将鼠标放到B上点

javascript - XML 解析错误 : no root element found Location in Console FF

我使用的是ASP.NETMVC,但我只在FF中遇到这个错误。为什么我会收到此错误消息?这是什么原因?我不明白这个错误的根源在哪里。有人有什么想法吗?下一个错误: 最佳答案 检查这个link了解更多信息Basedonmyresearch,theerrormessageisonlygeneratedbyFireFoxwhentherenderpageisblankinInternet.Forsomereason,.NETgeneratesaresponsetypeof"application/xml"whenitcreatesanemp