标签: breakpoints

如何在 C 源文件中“标记”某个位置以供以后定义断点?

问题: 我希望能够在我的 C 代码中放置不同的潜在唯一或重复的“标签”,以便我可以在 gdb 中使用它们来创建断点。

类似工作:

  • 行号断点:与源代码行上的断点的主要区别在于,如果以导致或多或少的行的方式修改标记之前的代码,则对标记的引用在语义上仍然是正确的,对源代码行的引用则不会。

  • 标签:我来自上一个问题,如何告诉 gcc 保留我未使用的标签?,其中我先入为主地认为答案是插入标签。在与平台上知识渊博的成员讨论后,我得知标签的名称在编译后不会保留。C 中未使用的标签将被编译器删除。

  • 注入 asm 标签:与之前的方法相关,如果我在 C 源代码中注入 asm 代码,由于内联函数、编译器优化和缺乏作用域,会出现某些问题。这使得这种方法不稳健。

  • 定义一个虚拟函数:在另一个问题上,Set GDB Breakpoint in C file,有一个有趣的方法,其中可以在代码中放置一个“虚拟”函数,然后在函数调用中添加断点。这种方法的问题在于必须为每个不同的标签复制此类函数的定义。

有更好的解决方案来实现这一点吗?或者从不同的角度来解决所提出的问题?

c assembly gcc gdb breakpoints

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

如何在 Visual Studio 2019(不是 VS Code)中禁用 JustMyCode for Python

在 Visual Studio 2019 中,当我使用“来自现有代码”模板创建 python 项目时,我无法让断点实际工作。当我开始调试时,断点会变黑,并且当我将鼠标悬停在断点上时会显示以下内容:

当前不会命中断点。文件中的断点被过滤器排除。注意:可能会因为“justMyCode”选项而被排除(默认== true)。尝试在调试配置中设置 "justMyCode": false (例如 launch.json)

然而,所有在线信息都launch.json与 VS Code 相关,而不是 VS 2019。

如果我尝试模仿您在 VS Code 中执行的操作(但在 VS 2019 中)并将文件launch.json放入我的项目.vs文件夹中,那么它不会执行任何操作。我确认我通过 VS Code 正确配置了 json 文件,并且它确实修复了那里的断点问题。

在 VS 2019 的“工具”->“选项”窗口中禁用“仅我的代码”选项也不会执行任何操作。那么你打算如何在 VS 2019 中做到这一点呢?

python breakpoints visual-studio visual-studio-2019

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

在Qt中设置断点后,gdb说:"访问内存地址时出错"

我在这里写了一个非常简单的Qt程序:

int main(int argc, char* argv[])
{
    QApplication app(argc, argv);

    QTableView table(&frame);
    table.resize(100, 100);
    table.show();

    return app.exec();
}
Run Code Online (Sandbox Code Playgroud)

当我尝试设置一个点击表的断点时,我从gdb得到这个错误:

(gdb) symbol-file /usr/lib/libQtGui.so.4.4.3.debug 
Load new symbol table from "/usr/lib/libQtGui.so.4.4.3.debug"? (y or n) y
Reading symbols from /usr/lib/libQtGui.so.4.4.3.debug...done.
(gdb) br 'QAbstractItemView::clicked(QModelIndex const&)'
Breakpoint 1 at 0x5fc660: file .moc/release-shared/moc_qabstractitemview.cpp, line 313.
(gdb) run
Starting program: ./qt-test
Warning:
Cannot insert breakpoint 1.
Error accessing memory address 0x5fc660: Input/output error.
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么不能插入断点?

debugging qt gdb breakpoints qt4

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

如何使用Chrome和点击断点调试Silverlight应用程序?

我正在使用Visual Studio 2010来创建Silverlight 4应用程序.

我在代码隐藏中设置了一个断点,从Visual Studio启动调试会话,不幸的是,我的断点永远不会被击中.

所以,我最终尝试将我的默认浏览器设置为Internet Explorer ...并且看到......我的断点突然被击中.

Chrome是否是支持调试Silverlight应用程序的浏览器?如果是这样,为了让这个工作起来,我错过了什么?

或者,Internet Explorer是调试时唯一受支持的浏览器吗?

browser debugging silverlight google-chrome breakpoints

5
推荐指数
1
解决办法
4347
查看次数

在Delphi中调试OutputDebugString调用

我在我的应用程序中有一些"流氓"OutputDebugString调用打印出"T",但我无法找到它.

是否有可能以某种方式在OutputDebugString -function上设置断点并查看它的调用位置?

我正在使用Delphi 2009.

delphi debugging breakpoints delphi-2009 outputdebugstring

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

Java代码未正确更新

这可能看起来很奇怪Q.

我用Java编写了一个代码(在Eclipse中).然后,我对代码做了一些修改.现在,我正在尝试运行新代码(已修改),但它仍然提供了它为前面的代码提供的输出.

我在代码中放了几个调试点,但它正在跳过一些调试点(虽然它应该停在它们上面)并在某个调试点停止,但即使在这里它也调用了前面代码中存在的方法位置(虽然我现在评论他们).它似乎从某个地方仍在调试旧代码.

如何摆脱它?

谢谢!

java eclipse debugging breakpoints

5
推荐指数
1
解决办法
9752
查看次数

如何在调试时满足if语句中的条件时停止

调试时,如果满足if语句中的条件,如何停止?例如:

if (!check()) {
  int a = 0;
}
Run Code Online (Sandbox Code Playgroud)

int a = 0; 是虚拟代码,然后我在那里放了一个断点.如果我在一个空的if循环中放置一个断点,调试器就不会停在那里,它只会在它可以执行的指令处停止.即使你做了一个; 只是声明它不会停止.

我可以用其他方式执行此操作而不是编写虚拟代码吗?

谢谢

c++ debugging breakpoints

5
推荐指数
1
解决办法
2214
查看次数

在构造函数上设置断点

我试图用设置在一类的构造函数断点在外部装配Debug,New Breakpoint,Break at function.

我已经尝试过使用这两个.ctorctor作为函数名称,但都不起作用

  • System.Web.Mvc.ViewResult..ctor
  • System.Web.Mvc.ViewResult.ctor
  • System.Web.Mvc.ViewResult.ViewResult

如果班级有多个控制器,那么这将有效;

  • System.Web.Mvc.HttpUnauthorizedResult.HttpUnauthorizedResult

在某些情况下,Visual Studio将构造函数名称显示为类名,例如with HttpUnauthorizedResult,但在其他情况下,它会显示构造函数名称,.ctor例如with System.Uri.


断点 -  System.Uri

断点

c# breakpoints visual-studio-2010

5
推荐指数
0
解决办法
1625
查看次数

"断点的条件未能执行......'变量'未声明.它可能无法访问......"为什么?

相关问题:

我在Visual Studio 2013 Professional中遇到条件断点问题.断点条件是指一个局部变量(tagString),它在断点之前的代码行中声明和初始化.在遇到断点时,调试器声称......

断点的条件无法执行.条件是tagString.Contains("…").返回的错误是' tagString未声明.由于其保护级别,它可能无法访问.

此错误消息似乎没有任何意义,因为该变量声明且可访问:

屏幕截图演示了这个问题

我正在运行此代码的Debug版本.为什么调试器声称未定义局部变量,如何解决此问题?


PS:我刚刚意识到条件断点不起作用只是一个大问题的一小部分:调试器也无法监视该变量,也不会显示在Locals窗口中.

PPS:我已经尝试过Rick Strahl博客文章中提出的建议,"Visual Studio 2013'无法评估表达式'调试器异常",但无济于事.

debugging breakpoints conditional-breakpoint visual-studio-debugging visual-studio-2013

5
推荐指数
0
解决办法
2089
查看次数

使用gdbserver和qemu进行调试,如何在控制寄存器cr3上设置watchpoint

我正在调试内核,我想知道cr3寄存器何时被更改.我知道如何在像eax和其他人这样的通用寄存器上设置观察点.

问题是,由于gdb无法访问控制寄存器,因此在cr3上设置观察点不起作用.

那么,是否可以从qemu监视器设置观察点?如果有,怎么样?

gdb kernel breakpoints qemu watchpoint

5
推荐指数
1
解决办法
599
查看次数