标签: debugging

在调试器中唯一标识引用类型

我来自C++背景,如果这是一种非C#思维方式,那么道歉,但我只需要知道.:)

在C++中,如果我有两个指针,并且我想知道它们是否指向相同的东西,我可以查看内存/监视窗口并查看它们的值 - 看它们是否指向相同的内存空间.

在C#中,我无法找到这些内容.一个具有完全相同值的引用类型实际上可能是完全相同的对象,或者它可能是完全不同的东西.

有没有办法让我在C#中看到这种信息?或许某种等同于观察窗口的&运算符或某些类似的?

c# debugging reference-type visual-studio

44
推荐指数
2
解决办法
8140
查看次数

如何调试JSF/EL

如何在JSF页面中调试EL?我想看变量值,函数调用等等.最好的解决方案是eclipse插件,但任何其他可能性都比猜测"为什么这个表达式无法正确呈现?"更好.

eclipse debugging jsf el jsf-2

44
推荐指数
2
解决办法
4万
查看次数

Visual Studio不会破坏用户未处理的异常

在Visual Studio中运行我的应用程序时,它以未处理的异常结束,而不是显示带有异常信息的消息框,并继续按照我习惯的方式继续.

我需要更改哪些选项才能恢复到我习惯的行为?

编辑:在调试/异常中我确实为CLR异常选择了User-unhandled选项.

ide debugging exception visual-studio-2012

44
推荐指数
4
解决办法
3万
查看次数

Visual Studio 2010:非常慢的Web应用程序调试!

我最近安装了Visual Studio 2010(终极版,4月发布的最终版),发现调试Web应用程序变得非常慢(比Visual Studio 2008 2-3倍)!

我使用相同的Web应用程序并检查了VS 2008和VS 2010中其中一个页面的加载速度,并比较了加载页面所需的时间.

我使用两种方法测试它:1)在ASP.NET Development Server下调试(通过按"开始"按钮)和2)使用ASP.NET Development Server而不调试(通过使用"在浏览器中查看"菜单命令).

我得到了Visual Studio 2008和2010 的以下结果.

1) ASP.NET Development Server withoud调试("在浏览器中查看"):VS 2008和2010中的页面加载速度相同.

2)在ASP.NET Development Server下进行调试("开始"按钮):在VS 2010中,页面加载时间比VS 2008要多 - VS 2010调试比VS 2008 慢2-3倍!

3)同时,在VS 2008中调试Web应用程序时,与仅使用"在浏览器中查看"命令相比,加载页面所需的时间相同.也就是说,VS 2008调试没有引入任何开销在Web浏览器的页面加载!

我想确保其他人在VS 2010中缓慢调试Web应用程序时遇到同样的问题.这个问题可以通过任何方式解决吗?

顺便说一句,我使用的是Windows XP SP3.

谢谢.

debugging visual-studio-2010 visual-studio

43
推荐指数
3
解决办法
3万
查看次数

检测iOS应用程序是否在调试器中运行

我将应用程序设置为将调试输出发送到控制台或日志文件.现在,我想在代码中决定是否

  • 它在调试器(或模拟器)中运行,因此有一个控制台窗口,我想直接读取输出或如果
  • 没有控制台窗口,因此输出应重定向到文件.

有没有办法确定应用程序是否在调试器中运行?

iphone debugging objective-c ios

43
推荐指数
6
解决办法
1万
查看次数

编辑并继续功能在Visual Studio 2010中停止工作

Visual Studio编辑并继续功能在Visual Studio 2010上停止,我不知道是什么导致了该问题.

我正在使用C#开发Windows应用程序.此应用程序最初是在Visual Studio 2008中开发的,后来升级到Visual Studio 2010.

一切都运行正常,包括编辑和继续,直到我将.NET Framework从3.5升级到4.0.

现在,当我使用调试模式时,更改IDE中代码的任何行会产生以下消息:

编辑是无法编译的.在修复编译错误之前,执行无法继续.

实际上,没有编译错误,我必须重新启动Visual Studio才能运行更新.

如何进行编辑并继续再次工作?

c# debugging visual-studio-2010 edit-and-continue

43
推荐指数
5
解决办法
2万
查看次数

Eclipse中的Android NDK调试 - 如何阻止仅在步进本机代码时发生的segfaults/SIGILL

我已经在Eclipse中为使用Android NDK(在Windows XP上,使用Cygwin)的本机代码设置调试到我可以在Java和本机代码中设置断点的阶段,调试器将正确地破坏它们.我的问题是,当单步执行本机代码时,我会经常得到分段错误/ SIGILL,而不是在继续通过断点时发生的.

  • 我的应用程序是可调试的,如AndroidManifest.xml中所定义
  • 我更改了(NDK)/build/core/build-binary.mk以防止它在APP_OPTIM定义为debug 时剥离调试符号,它位于我的jni目录中的Application.mk文件中
  • LOCAL_CFLAGS := -g -O0在Android.mk文件中定义了,我也分别试过了这些标志

我已经读过这个问题与生成的优化代码有关,但关闭优化-O0对我的问题没有影响.我NDK_BUILD=1在构建时也遇到了使用标志,但debuggable=true在AndroidManifest.xml中定义显然具有相同的效果.

我在仿真器(运行2.3.3)和设备(运行2.2 - 令人惊讶地没有我预期的线程问题)上尝试了这一点,结果相似(尽管如果我没记错的话,故障发生在不同的地方)代码中的点数).

有没有人对我可以尝试的可能的修复/步骤有任何了解,和/或能够成功单步执行本机代码而没有任何问题?

非常感谢


编辑:这从未真正解决,但对于任何想要查看NDK调试指南的人,您可以在此处找到它.

编辑2:一旦NDK的新版本出现,我得到了这个问题的答案,这个问题现在可能是多余的.我的导游可能仍然有效,但我还没有使用NDK一段时间,所以我不能保证它的持续正确性.我已经接受了我的答案,因为这三个人基本上都说了同样的话,那是第一个提交的答案.

eclipse debugging android android-ndk

43
推荐指数
1
解决办法
4790
查看次数

异常断点(相当于gdb的捕获量)

我试图使用lldb进行c ++调试,如果抛出异常,我想暂停,比如gdb catch throw,我在lldb文档中找不到等价物.

debugging llvm lldb

43
推荐指数
2
解决办法
2万
查看次数

Javascript使用谷歌浏览器逐行调试

如何使用Google Chromes开发人员工具逐行浏览我的javascript代码,而无需进入javascript库?

例如,我在我的网站上大量使用jQuery,我只想调试我编写的jQuery,而不是jquery库中的javascript/jquery.我如何只通过自己的jquery/javascript而不必遍历jquery库中的数百万行?

所以,如果我有以下内容:

function getTabFrame() {
    $.ajax({
        url: 'get_tab_frame.aspx?rand=' + Math.random(),
        type: 'GET',
        dataType: 'json',
        error: function(xhr, status, error) {
            //alert('Error: ' + status + '\nError Text: ' + error + '\nResponse Text: ' + xhr.responseText);
        },
        success: function(data) {
            $.each(data, function(index, item) {
                // do something here
            });
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

如果我将断点放在$.ajax({,如果我开始调试它停止的地方,如果我然后按F11,它会直接进入jQuery库.我不希望这种情况发生,我希望它转到下一行url: 'get_tab_frame.aspx?rand=' + Math.random(),.

我尝试过按F10,但这直接关闭}了功能.F5只是进入下一个断点,而不是一个接一个地走过每一行.

javascript debugging jquery google-chrome google-chrome-devtools

43
推荐指数
2
解决办法
9万
查看次数

如何在OSX上获得"codesigned"gdb?

因为我需要启用Python gdb,所以我通过安装了另一个版本

brew tap homebrew/dupes
brew install gdb
Run Code Online (Sandbox Code Playgroud)

我想在gdbEclipse CDT中使用它,我在调试设置中输入了二进制文件的路径.但是,启动调试程序失败,并显示以下消息:

Error in final launch sequence
Failed to execute MI command:
-exec-run
Error message from debugger back end:
Unable to find Mach task port for process-id 39847: (os/kern) failure (0x5).\n (please check gdb is codesigned - see taskgated(8))
Unable to find Mach task port for process-id 39847: (os/kern) failure (0x5).\n (please check gdb is codesigned - see taskgated(8))
Run Code Online (Sandbox Code Playgroud)

"编码签名"在这种情况下意味着什么?我该如何gdb运行?

c++ debugging macos gdb code-signing

43
推荐指数
4
解决办法
4万
查看次数