标签: debugging

检查应用程序是否从Visual Studio中启动

我正在开发一个安装系统范围键盘钩子的应用程序.当我从visual studio内部运行调试版本时,我不想安装这个钩子(否则它会挂起工作室,最终挂起系统),我可以通过检查是否定义了DEBUG符号来避免这种情况.

但是,当我调试应用程序的发布版本时,有没有办法检测它是否已从visual studio内部启动以避免同样的问题?因为我一直在处理发布版本,并且想要使用忘记切换回调试版本的调试器修复一些错误,所以必须重新启动工作室/计算机是非常烦人的.

目前我使用这样的方法来检查这种情况:

System.Diagnostics.Process currentProcess = System.Diagnostics.Process.GetCurrentProcess();
string moduleName = currentProcess.MainModule.ModuleName;
bool launchedFromStudio = moduleName.Contains(".vshost");
Run Code Online (Sandbox Code Playgroud)

我称之为"蛮力方式",这在我的设置中有效,但我想知道是否有另一种(更好的)方法来检测这种情况.

debugging visual-studio

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

Visual Studio 2010脚本调试程序对我不起作用

我刚刚安装了VS 2010 Beta 2,并希望使用ASP.NET MVC 2项目.我只是将一些script(alert('hello');)添加到Home控制器的index.aspx视图中,我可以看到它正在执行.但是,当我尝试设置断点时,它永远不会被击中.我也尝试使用"debugger"关键字,当我这样做时,我感到很失望"没有可用于当前位置的源代码"消息.当我尝试独立地附加到我的应用程序运行的IE进程时,我也收到此消息.

为了获得友好的脚本调试体验,我需要做些什么?(我已成功使用Firebug来调试它,但由于某种原因,我更喜欢VS调试器.)

以下是我配置的一些细节:

  • 我正在VS 2010 Beta 2中发布我的内容.
  • IE8版本8.0.7600.16385是我的默认浏览器.
  • 未选中"禁用脚本调试(Internet Explorer)"高级选项.
  • 未选中"禁用脚本调试(其他)"选项.
  • 在我的ASP.NET MVC 2项目的"web"属性选项卡中,将检查ASP.NET调试器.所有其他人都未经检查.
  • Visual Studio 2008脚本调试似乎工作正常.

javascript debugging visual-studio-2010 visual-studio

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

解决随机崩溃问题

我在我的C++应用程序上遇到随机崩溃,它可能不会崩溃一个月,然后在一小时内崩溃10次,有时可能会在启动时崩溃,而有时可能会在运行几个小时后崩溃(或者不会崩溃)所有).

我在GNU/Linux上使用GCC,在Windows上使用MingW,因此我无法使用Visual Studio JIT Debug ...

我不知道如何继续,随机查看代码是行不通的,代码是巨大的(好的部分不是我的工作,它也有一些很多遗留的东西),我也没有有关如何重现崩溃的线索.

编辑:很多人提到......我如何制作核心转储,小型转储或其他转储?这是我第一次需要进行事后调试.

EDIT2:实际上,DrMingw捕获了一个调用堆栈,没有内存信息......不幸的是,调用堆栈对我没什么帮助,因为接近结束突然它进入了一些我没有调试信息的库(或其他东西) ,只产生一些十六进制数...所以我仍然需要一些体面的转储,提供更多的信息(特别是关于内存中的内容...具体来说,在那里给出了"访问冲突"错误的地方)

此外,我的应用程序使用Lua和Luabind,可能错误是由.lua脚本引起的,但我不知道如何调试它.

c++ crash debugging lua mingw

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

iOS没有错误或堆栈跟踪崩溃

很难跟踪iPad应用程序中的崩溃.这个困难的真正原因是当应用程序失败时没有错误或堆栈跟踪.它就像Keiser Soze一样消失,"就像那样,噗.他走了."

我已经在模拟器和设备上复制了崩溃.设备日志为零,控制台中没有任何内容,等等.

我知道在崩溃期间,一些CoreGraphics操作正在后台线程中发生.通常,三个左右的NSOperations正在踢一些图像混合.

混合包含CGContext*调用(DrawImage,SetBlendMode,SetAlpha等).NSOperation回调主线程中的委托来处理图像并将其设置为UIImage,因此它不应该是UI主线程冲突,但此时我不打算任何折扣.

我是否缺少一些Xcode技巧来追踪究竟发生了什么?或者至少可以更好地了解问题所在?

编辑我已经在仪器中运行应用程序跟踪内存使用情况,看到它在2MB左右稳定稳定.所以,不要认为这是一个记忆问题.但经过考虑,这块岩石稳定2MB似乎异常低落.有没有机会仪器没有获得CoreGraphics分配?

crash debugging xcode ios xcode-instruments

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

可以在visual studio中调试时编辑代码,就像在eclipse(java)中一样

在Visual Studio中的断点中进行调试时是否有编辑代码的选项.当我停止时,所有文件似乎都被锁定以进行编辑.

有没有办法改变这种行为?它可以在Eclipse中实现

编辑:尝试所有以下建议后(包括移动它从发布到调试),现在它告诉我,我没有正确的微软Office版本和调试不能在调试模式下启动.但是,在发布模式下,它正在运行.我正在尝试调试outlook加载项.

c# java eclipse debugging visual-studio

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

在java中有asm nop等价吗?

当我用Visual Studio 编写C/C++时,我经常使用__asm nop;命令插入一个noop代码,以便有一些东西可以打破.例如:

if (someCondition())
{
  __asm nop;
}
Run Code Online (Sandbox Code Playgroud)

当条件发生时我不知道该怎么做,但我想停止执行并检查当前状态.有时候someCondition()很简单就可以创建一个条件断点,但条件断点会大大减慢执行速度,但并不总是可行.

现在,在C#中,我通过调用System.Diagnostics.Debugger.Break()或直接进入调试器System.Diagnostics.Debugger.Launch().

现在我被迫编写Java,直到现在我找到了没有比做更好的替代方案System.out.println("bla-bla")并在那里设置断点.同样,请考虑条件断点不可行的情况.

所以,我不知道-是有一个__asm nopSystem.Diagnostics.Debugger.Break()Java中的选择?

java debugging

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

步入IPython中的一个函数

有没有办法在ipython中进入函数的第一行.我想象的东西看起来像:

%step foo(1, 2)
Run Code Online (Sandbox Code Playgroud)

它运行ipdb并在第一行设置断点foo.

如果我现在想要这样做,我必须转到函数的源代码并添加import ipdb; ipdb.set_trace()一行.

python debugging ipython pdb

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

使用CURL调用时,在PhpStorm中触发xDebug

所以我从命令行使用CURL来调用我的PHP网站:

curl -s "url"
Run Code Online (Sandbox Code Playgroud)

我的问题是......是否可以修改此命令,以便在从CURL调用站点时可以触发xDebug(与IDE结合使用(我使用Jetbrains PHPStorm))

也许操纵GET变量?

ide debugging command-line curl xdebug

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

无法运行量角器 - ECONNREFUSED连接ECONNREFUSED

我正在努力学习AngularJS.作为其中的一部分,我想学习使用端到端测试.目前,我有一个这样的目录结构:

node_modules
  .bin
  ...
  protractor
    ...
    node_modules
       .bin
       adam-zip
       glob
       minijasminenode
       optimist
       saucelabs
       selenium-webdriver
protractor
  config.js
src
  tests
    test.e2e.js
Run Code Online (Sandbox Code Playgroud)

我的config.js文件如下所示:

exports.config = {
    seleniumAddress: 'http://localhost:4444/wd/hub',

    capabilities: {
        'browserName': 'chrome'
    },

    specs: [
        '../src/tests/test.e2e.js'
    ],

    jasmineNodeOpts: {
        showColors: true,
        defaultTimeoutInterval: 30000
    }
};
Run Code Online (Sandbox Code Playgroud)

test.e2e.js如下所示:

'use strict';

describe('My Sample', function () {
    driver = protractor.getInstance();

    beforeEach(function () {
        driver.get('#/');
    });

    it('My First Test', function () {
        message = "Hello.";
        expect(message).toEqual('World.');
    });
});
Run Code Online (Sandbox Code Playgroud)

当我尝试使用量角器运行我的端到端测试时,我从命令行运行以下命令:

node_modules\.bin\protractor protractor\config.js
Run Code Online (Sandbox Code Playgroud)

当我运行该命令时,我收到以下错误:

C:\Src\MyProject\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:1542
      throw error;
            ^
Error: ECONNREFUSED …
Run Code Online (Sandbox Code Playgroud)

debugging webdriver errno angularjs protractor

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

如何列出(po)Swift数组的内容?

环境:Swift,Xcode 6

如何获取Swift数组的数据项列表(po)?

以下是用于构建简单数组的Swift代码:

kindArray += "Two"
kindArray.append("Two")

var myStringArray: String[]
myStringArray = ["One", "Two"]
myStringArray.append("Three")
myStringArray += "Four"

var firstItem = myStringArray[0]
Run Code Online (Sandbox Code Playgroud)

这是调试输出:

(lldb) po firstItem
"One"

(lldb) po kindArray
Some
 {
  Some = 0x0ffb0000 {}
}
(lldb) po myStringArray
size=1
 {
  [0] = {
    core = {
      _baseAddress = Builtin.RawPointer = 0x00000008
      _countAndFlags = 34718
      _owner = Some {
        Some = (instance_type = Builtin.RawPointer = 0x80000003)
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我得到的只是'一些'和'大小'.
我想展示一下内容.

debugging swift xcode6

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