Tag: debugging

Linux和Mac的HTTPdebugging代理

我使用Fiddler代理来debuggingWindows上的各种HTTP问题。 检查多个页面上的标题和响应是非常好的。 有没有一个很好的Mac和Linux的HTTPdebugging代理? 我find了查尔斯 ,但是一旦审判结束,这个费用是50美元,而且还在我身上。 我可以使用Wireshark ,但这是一个痛苦。

Visual Studio .NETdebugging器的“隐藏的秘密”?

尽pipe我一般不喜欢SO的讨论/主观post,但我真的明白了人们放在一起的“隐藏的秘密”。 他们提供了一些您可能会发现的常见工具的概述。 对于这个问题,我想探索Visual Studio .NETdebugging器。 什么是VS.NETdebugging器中的一些“隐藏的秘密”,你经常或最近发现,希望你早就知道?

如何在ASP.NET中仅以debugging模式执行代码

我有一个ASP.NET Web应用程序,我只想在debugging版本中执行一些代码。 这个怎么做?

如果多个文件具有相同的名称,则Visual Studio断点会在错误的源文件(或多个文件同时)中断裂

在我正在开发的团队项目中,如果在解决scheme中存在另一个具有相同名称的文件,则在文件中设置断点(例如IdeasController.cs )将导致错误的debugging器行为。 我已经在几个开发人员的工作站上重现了这个问题。 例 我在Web API中的IdeasController.cs中设置了一个断点: 另一个名为IdeasController.cs文件存在于我们单独的MVC 4 web项目中。 在下面的屏幕截图中,debugging器显示了Api->IdeasController源代码,但是行突出显示与Web->IdeasController的代码结构相匹配。 断点是重复的,其中一个位于注释块的中间。 断点窗口同时在两个文件中显示断点: 在某些工作站上,debugging器通过正确的行(不pipe行高亮)。 在别人身上,它通过不相关的行(包括评论和空白)高兴地走了过来。 我猜这取决于它select显示哪个源文件。 我试过了 我已经浏览了互联网。 当debugging文件( *.pdb ),源文件和编译后的代码不匹配时,就会出现这种问题。 有很多可能的原因:重复的文件名(可能会混淆debugging器[5] ),过时的项目构build文件,无效的解决schemecaching或不正确的构buildconfiguration。 这些是我find和尝试的解决scheme: 检查了我的构buildconfiguration。 确保项目不是以发布模式构build的。 确保我们没有启用代码优化 。 确保项目的debugging模块已正确加载。 (开始debugging项目,并勾选Debug > Windows > Modules 。这两个程序集都列出,没有优化,并且符号状态为“Symbols loaded”。) 重置debugging元数据和Visual Studiocaching。 closuresVisual Studio并删除解决schemecaching文件( *.suo )。 [1] 删除每个项目的构build输出( bin和obj文件夹)。 (供将来参考:在Windows资源pipe理器中打开解决scheme文件夹,并在search框中input:“ type:folder AND (name:=bin OR name:=obj) ”。 删除程序集caching文件夹( C:\Documents and Settings\<user>\Local […]

Android Studio在使用旧API的设备上进行debugging时会显示来自compileSdkVersion的API的信息

我正在用Android Studio(AS)1.0.2进行debugging,在build.gradle中设置了compileSdkVersion 21。 当使用模拟器与API 21一切正常。 在具有API 19的设备上debugging时会出现问题。调用堆栈中的每一行(在AS中标记为“Frames”)都正确显示了与API 19匹配的函数名称,源文件和行号。但是,当我单击与其中一个框架源(例如Activity.java)相对应的行,AS不正确地打开并显示该文件的API 21版本而不是API 19版本。 在我的android sdk文件夹中,我有./sources/android-19和./sources/android-21 任何想法为什么AS显示文件的错误版本? 我尝试的东西(按顺序): 重置Android Studio(通过删除〜/ .AndroidStudio *) 将Android Studio更新到最新版本 在带有API 21的仿真器上运行 – AS显示文件的正确版本(21)。 将compileSdkVersion更改为19并在API 19设备上运行 – AS在调用堆栈中显示正确的行号,并在正确的行中打开正确的文件(API 19)。 将compileSdkVersion更改为19并在API 21仿真器上运行 – AS在调用堆栈中显示对应于API 21的行号(在我看来,这是正确的行为),但是当点击它时,AS错误地打开了API 19版本的文件而不是API 21版本。 总而言之,当单击调用堆栈AS中的一行时,在debugging会话期间打开由compileSdkVersion表示的文件版本,而不是由设备/仿真器使用的文件版本。

在Visual Studio 11中使用Chrome启用脚本debugging

我有一个MVC 4的Web应用程序与一些JavaScript与Internet Explorer工作正常,并给与Chrome的问题。 我正在考虑使用Chrome浏览器作为Visual Studio 11中的浏览器进行debugging,可以从debugging下拉列表中select:问题是我无法弄清楚如何启用脚本debugging:当我debugging断点时,通常是警告 没有符号已经加载这个文件 我知道我可能直接在Chrome中debugging脚本,但是我更喜欢使用Visual Studio来保持一致,因为它涉及到几个lenghty js库。 从以前的文章中我可以看出,使用Visual Studio 2008这是不可能的:有没有人知道用Visual Studio 11做到这一点的方法? PS:附加的Chrome进程没有帮助,因为debugging模式是“本机”而不是“脚本” PSII:我也尝试使用Attach …菜单中的Attach to: Script Code选项来附加Chrome浏览器(这会将debugging模式切换为脚本 ),但这并没有帮助。

debugging私人NuGet包?

我已经发布了一些私人/内部库作为NuGet包,使用符号选项。 包和符号托pipe在内部networking共享上。 debugging时如何进入这些软件包? 当我从这些包中进行编码时,Visual Studio将显示“No Source Available”/“No Symbols Found”页面。 单击“加载符号”只允许使用pdb文件,而不能使用符号包。 这些软件包不适合在NuGet Gallery / SymbolSource上发布。

javascriptdebugging:有没有办法打破variables值的变化?

类似于这里的其他问题, 就像这个 。 有没有办法打破任何JavaScriptdebugging器中的variables值的变化? (如IE开发工具,Visual Studio或Firebug?) 我想这就像是一个“监视variables”,但我希望能够看到调用堆栈,并在实际发生变化时暂停它。 另一种方法可能是用一个自定义的setter重写值设置,并在其中放置一个断点,但不幸的是,这对IE afaik不起作用。 更新看来,这种types的行为至less可用于C ++编写的非托pipe代码所以我想也许用C ++(谷歌的V8)编写的JavaScript引擎可能有类似的东西,但似乎没有我想要的。

debugging器不会在asynchronous方法中打破/停止exception

当一个debugging器连接到一个.NET进程时,它通常会在引发未处理的exception时停止。 但是,当你在一个async方法,这似乎不工作。 我以前尝试过的场景在以下代码中列出: class Program { static void Main() { // Debugger stopps correctly Task.Run(() => SyncOp()); // Debugger doesn't stop Task.Run(async () => SyncOp()); // Debugger doesn't stop Task.Run((Func<Task>)AsyncTaskOp); // Debugger stops on "Wait()" with "AggregateException" Task.Run(() => AsyncTaskOp().Wait()); // Throws "Exceptions was unhandled by user code" on "await" Task.Run(() => AsyncVoidOp()); Thread.Sleep(2000); } […]

在Chrome开发人员工具中进行debugging时跳过行

Google Chrome开发人员工具中是否有一项function可以在debugging时跳过一行,而不会在debugging时执行,类似于在Visual Studio中可以完成的工作? 我可以想到的一种解决方法是通过包装行来“实时编辑”代码 if(false){ //line to be skipped } 但这并不是我每次刷新后都要做的最方便的解决方法。 有没有内置或更快,更好的方法呢?