标签: debugging

通过PowerShell将调试器连接到多个进程

我有几个进程正在运行,我想通过PowerShell连接到VS调试器.

目前,我可以这样做: Get-Process NServiceBus.Host | Debug-Process

如果只有一个进程,则提示我选择正确的调试器,然后我可以继续.

但是,如果有多个进程,当系统提示我为第二个进程选择调试器时,我无法选择当前运行的Visual Studio实例.

如何使用powershell将多个进程附加到Visual Studio的运行实例以进行调试?

debugging powershell visual-studio visual-studio-2013 powershell-4.0

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

在屏幕上轻松打印图像以便以阻止方式进行调试

我正在研究一个计算机视觉项目,并在某个过程中发生无限循环.我的图像数据似乎已被破坏.

过去,我曾经使用这种方法在磁盘上保存调试结果:

   public static boolean saveToPath(String path, BufferedImage image) {
     File img = new File(path);
     try {
       ImageIO.write(image, "png", new File(path));
     } catch (IOException ex) {
       System.err.println("Failed to save image as '"+path+"'. Error:"+ex);
       return false;
     }
     return true;
   }
Run Code Online (Sandbox Code Playgroud)

问题是,一旦使用循环并且错误介于两者之间,我需要看到许多图像.所以基本上,我想要一个像这样定义的方法:

  /** Displays image on the screen and stops the execution until the window with image is closed.
   * 
   * @param image image to be displayed
   */
public static void printImage(BufferedImage image) {
   ???
}
Run Code Online (Sandbox Code Playgroud)

并且可以在循环或任何函数中调用以显示实际图像,有效地表现为断点.因为虽然多线程在生产代码中非常好,但阻塞函数对于调试来说要好得多.

java debugging bufferedimage

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

gdb:不在上下文中的结构的大小?

有时我需要知道不在范围内的结构的大小(甚至不在堆栈中,即frame相关的命令也无济于事).例如,它发生在调试客户端+服务器通信时,重新启动应用程序只是在结构的上下文中断,目的是找到大小是不舒服和耗时的.

如何struct在忽略当前上下文的情况下找到标题中定义的大小?

c c++ debugging struct gdb

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

"活动配置中存在错误..."调试时的Eclipse对话框

"项目X的活动配置中存在错误.继续启动?" 在Eclipse中调试代码时出现对话框.点击"继续"按钮可以调试成功.启动配置没有明显错误.类似的运行配置不会生成错误.

eclipse debugging

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

硬件断点始终为EXCEPTION_SINGLE_STEP

我有一个充当调试器的程序.我为线程设置dr0设置了一个hw bp到我想要bp的地址,dr7设置为1,因为我希望每次执行该地址时bp都会生成一个事件.

它的工作原理但现在的问题是我不会一直停止接收EXCEPTION_SINGLE_STEP.我像往常一样用WaitForDebugEvent创建了一个循环:

DebugActiveProcess(pid);
while (flag == 0)
    {
        WaitForDebugEvent(&DBEvent, INFINITE);
        if (first_time){
            setHWBPInCurrentThreads(pid, breakpoint_address);
            first_time = 0;
        }
        switch (DBEvent.dwDebugEventCode)
        {
            // Here we check if a new thread is created and we set a BP for all of them
            case CREATE_THREAD_DEBUG_EVENT: 
            {
                HANDLE thread_handle = DBEvent.u.CreateProcessInfo.hProcess;
                HANDLE hX3 = SetHardwareBreakpoint(thread_handle, HWBRK_TYPE_CODE, HWBRK_SIZE_1, breakpoint_address);

            }break;

            case EXCEPTION_DEBUG_EVENT:
            {
                switch (DBEvent.u.Exception.ExceptionRecord.ExceptionCode)
                {
                case EXCEPTION_SINGLE_STEP:
                {       
                    printf("%d\n", DBEvent.dwThreadId);
                    ///MessageBoxA(0, "yesssssssss", "", 0);
                }break;

                case EXCEPTION_BREAKPOINT:
                {
                    //MessageBoxA(0, "Found break point", "", …
Run Code Online (Sandbox Code Playgroud)

c c++ hardware debugging breakpoints

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

如何将erlang dbg附加到正在运行的进程?

如何将调试器附加到正在运行的erlang进程(rabbitmq)?我有正在运行的相同兔子版本的源代码.我想在源代码行上设置断点,并将调试器附加到正在运行的Rabbit实例.我不确定erlang是否需要调试符号async_dirty.

在一个完美的世界里,我希望能够在本地和远程做到这一点.

我是一个二郎初学者,我甚至不会说我是二郎的新手.我正在尝试学习它,因为我调试了一些rabbitmq插件.

debugging erlang rabbitmq rabbitmq-exchange

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

使用来自终端的参数调试python脚本

我有一个python脚本,它接受输入参数并运行以响应终端中的以下命令(bash,Mac OSX).

python test.py arg1 arg2
Run Code Online (Sandbox Code Playgroud)

有没有调试模式运行相同的脚本,而无需编辑代码,包括一个很好的方式import pdbpdb.set_trace()

例如,如果我正在使用iPython控制台,我可以通过以下方式执行此操作:

%run -d test.py arg1 arg2
Run Code Online (Sandbox Code Playgroud)

这很简单,不是吗?为了在终端中实现同样的目的,我认为以下可能有效,但它没有:

python -c "import pdb; import sys; sys.argv = ['test.py', arg1, arg2];pdb.run('test.py')"
Run Code Online (Sandbox Code Playgroud)

代码使用参数运行,但不是在pdb调试模式下运行.是不是很难做到,我应该坚持使用pdb.set_trace或者iPython的%run -d

python debugging bash pdb

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

在Runnable中使用断点调试android应用程序[Android Studio]

我需要调试我的应用程序,并调试runnable内的代码,并在应用程序中执行一些操作然后再次调试代码,但我不能这样做,我不能做任何操作,调试点立即激活.

代码:

public class UpdateHandler {

    public static Handler getHandler() {
        if (sHandler == null) {
            HandlerThread looper = new HandlerThread("update Handler");
            looper.start();
            sHandler = new Handler(looper.getLooper());
        }

        return sHandler;
    }
}


UpdateHandler.getHandler().post(new Runnable() {
    @Override
    public void run() {
        update();
    }
});

public void update() {
    // i put the debug point here .
}
Run Code Online (Sandbox Code Playgroud)

debugging android breakpoints runnable android-studio

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

Visual Studio 2013调试键盘快捷方式不起作用

我刚刚得到一台装有Windows 8的新计算机,并在其上安装了Visual Studio 2013,现在我遇到了调试器快捷方式的问题 - 我在调试模式下运行应用程序,它在第一个断点处中断,但是当我尝试进一步逐行时,F10不能从键盘 - 只有VS调试菜单.我错过了什么?

PS问题是功能键.需要打开才能使用F键

debugging breakpoints visual-studio-2013

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

由于SVGAnimatedString导致Chrome和TypeError

当我点击SVG元素时,我在Chrome上收到错误,但在Firefox上收不到错误.

如果我使用Chrome的调试器,它会在bubble_compiled.js(Google的文件)中出现'Uncaught TypeError:undefined is not function'.

我知道潜在的问题源于'.className返回一个SVGAnimatedString(没有indexOf方法),正确的做法是使用.classNam e.baseVal但是这个错误不再是我的代码的一部分而是它的一部分谷歌的代码.

这是一个基本的例子:

<!DOCTYPE html>
<html>
<head>
    <script>
       function err() { alert('err'); }
    </script>
</head>
<body>
   <svg style="width:200px;height:200px; background-color: #00B7FF" onerror="err()"></svg>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

不幸的是,这意味着我无法调试涉及与svg元素交互的代码,因为Chrome调试器在mousedown上打破了此错误.

有趣的是,直到两天前(5月14日)我才发现这个问题并且我已经开发了这样的代码好几年了.我在Mac上使用Chrome 42,我尝试使用Chrome 40.0.2214.91(64位),但现在我得到了同样的错误(是的,我禁用Chrome自动更新:-)我没有看到问题在Firefox(带或不带调试器).

另一个有趣的观察是,如果我从文件而不是(file://)加载上述html而不是通过服务器,则不会发生错误.

我试图通过向SVGAnimatedString(或其原型)添加indexOf()来规避它,但这是本机代码,它不起作用.

将onmousedown添加到svg元素没有帮助,因为异常发生在我的函数被调用之前.

我现在需要的是告诉Chrome不要破坏此错误的方法.

javascript debugging macos svg google-chrome

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