我正在运行带有SP1的Visual Studio 2008.当我调试应用程序时,它将跳过我的断点.
例如,我有两行代码,每行代码调用一个方法.我会在两条线上都设一个断点.我会跑一次,它会在第一个断点停止,但不会在下一个断点停止.我会再次运行它,它会击中第二个,而不是第一个.
我试图清理解决方案并重建.
我在解决方案中有多个项目.
我有一个空的向量,有些东西填充它,我找不到它.我想设置一个内存断点,以便在发生push_back时程序将中断.
我正在使用Visual Studio 2008,问题是向量在监视窗口中没有显示其内部成员(它似乎有自定义格式).它看起来像这样:
myVector [0]()std :: vector <int,std :: allocator <int >>
指示大小0.任何提示?
anisha@linux-dopx:~> g++ -Wall -pedantic breakpoints.cpp -g
anisha@linux-dopx:~> gdb a.out
(gdb) b X::X
Breakpoint 1 at 0x400ac1: file breakpoints.cpp, line 14.
Breakpoint 2 at 0x400aa0: file breakpoints.cpp, line 9.
warning: Multiple breakpoints were set.
Use the "delete" command to delete unwanted breakpoints.
(gdb)
Run Code Online (Sandbox Code Playgroud)
在默认构造函数上设置断点的方法是什么,这样GDB不会在其重载的对应项上创建不必要的断点?
或者它是GDB的问题,它希望用户删除它的混乱?还是我错过了一点?
编辑1.
对于以下代码:
class X
{
public:
X ()
{
std :: cout << "\nIn the default constructor";
}
X (int)
{
std :: cout << "\nIn the parameterized constructor";
}
~X () {}
};
Run Code Online (Sandbox Code Playgroud)
我试过了:
(gdb) …Run Code Online (Sandbox Code Playgroud) 我在Visual Studio 2010 Express中遇到了一个奇怪的断点行为.下面是带断点的代码.

我能够在第一个断点(第159行)处断开,但是在第160行之后步进,光标消失,即在按下F10/F11的代码图像之后,显示应用程序.
问题是,
为什么第162行不执行(没有此声明,asserts在其他地方失败)或打破它?
注意:Refresh();正在执行第166行,因为显示的应用程序已更新.
编辑:根据评论中的建议,我逐步进行反汇编,我发现这行(来自wxWidgets库)导致调试失败00D5AF7C call wxCharBuffer::~wxCharBuffer (0D207AAh)
[[编辑2x]我认为我已经把我原来的问题写错了,所以我已经把它翻到了下面并重写了我想要的内容,以供将来的读者使用.]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[新的,有光泽的,清晰的问题,更好的措辞]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~
我有一个运行模拟/游戏框架的循环.这个循环有几个地方需要确定实际上已经过了多少时间,这样这些特殊地方的逻辑 - 特别是渲染和更新 - 才能正常工作.它可以选择是固定时间步(unfixed[update/render]是否为假).
当基于断点的调试在应用程序的任何一点完成时会出现问题,因为它使用秒表来计算实时已经过了多少(为了物理和动画以实际速度移动,而不是基于多少计算机可以生成的框架).
它看起来(粗略地)是这样的,对应用程序循环的每个"部分"使用多个秒表,需要知道自上次"部分"发生以来已经过了多少时间:
while ( RunningTheSimulation ) {
/* ... Events and other fun awesome stuff */
TimeSpan updatedifference = new TimeSpan( updatestopwatch.ElapsedTicks );
if ( unfixedupdate || updatedifference > updateinterval ) {
Time = new GameTime( updatedifference,
new TimeSpan( gamestopwatch.ElapsedTicks ) );
Update( Time );
++updatecount;
updatestopwatch.Reset( );
updatestopwatch.Start( );
}
TimeSpan renderdifference = new TimeSpan( renderstopwatch.ElapsedTicks );
if ( unfixedrender || renderdifference …Run Code Online (Sandbox Code Playgroud) 我发现这篇文章解释了如何设置条件断点以打破任何printf函数.在XCode中实现类似功能的过程是什么?目的显然是调试器停止何时何地尝试在控制台中输出任何内容.
在Visual Studio中调试C ++项目时,某些数据断点永远不会命中。
所以我写了一些测试代码:
#include <iostream>
#include <stdint.h>
void test(uint32_t* p)
{
*p = 0;
// set a data breakpoint on p
*((char*)p + 2) = 0x1;
std::cout << *p << std::endl;
}
uint32_t* alloc(size_t offset)
{
char* p = new char[sizeof(uint32_t) + offset];
p = p + offset;
return (uint32_t*)p;
}
int main()
{
test(alloc(0)); // test #1
test(alloc(2)); // test #2
}
Run Code Online (Sandbox Code Playgroud)
如您所见,在功能测试中,* p的值将首先置零,然后将其隐式更改,我得到了一个小端CPU,因此必须为65536。
如果在p(4个字节)上设置数据断点以检测更改,则会得到两个不同的结果:是否命中。它取决于所指向的p的地址。
在我上面的测试代码中,测试#1将命中,而测试#2将不命中,#1和#2之间的区别是alloc(0)和alloc(2)返回的地址。
数据断点不能在未对齐的地址上工作吗?
假设如下.gdbinit:
break foobar
ignore 1 1
run
Run Code Online (Sandbox Code Playgroud)
程序开始使用gdb --args ./myprogram --argument1 --argument2等.
现在,当我开始这个时,第一次围绕一切都很好,花花公子.但是,如果我run在(gdb)提示符上发出a 以便使用最后已知的命令行重新启动程序,则该ignore行将不会生效.
原因当然是清楚的.第一次我最终结束
(gdb) info break
Num Type Disp Enb Address What
1 breakpoint keep y 0x000000000061ea6a in foobar at ../foobar.c:1173
breakpoint already hit 1 time
Run Code Online (Sandbox Code Playgroud)
任何后续运行都以X中显示的任何值开始breakpoint already hit X time.当然,该值已经超过了设定的限制ignore.
如何重置断点上的统计数据或者更好,但我如何能够run自动为我做这个?
使用Visual Studio Code,当我在.ts文件中设置断点时,它没有被点击。(并且在调试时不是红色的)。
但是,如果我在已编译的JS中设置一个断点,那么当我逐步执行代码时,它将把我切换到ts文件。然后,.ts文件中的所有断点都开始工作。
有没有一种方法可以使.ts文件断点正常工作(而不必首先在编译的.js文件中设置一个?
注意:我看了这个问题:使用Visual Studio Code在Typescript Jasmine测试中设置断点,这正是我的问题。但是,该问题的答案是升级到VS Code 0.10.9和Typescript 1.8.2。我正在使用VS Code 1.8.1和Typescript 2.1.4。
debugging breakpoints source-maps typescript visual-studio-code
我正在尝试在Linux centos上的Monodevelop 7.4上调试我的dotnet core 2.0应用程序。当我提出一些建议时,monodevelop就没有停止我的应用程序。
我尝试了一些配置来启用它,但没有成功。是虫子吗?还是尚未在monodevelop中实现?
在此先感谢您的帮助。
大卫
breakpoints ×10
c++ ×4
debugging ×3
gdb ×2
visual-c++ ×2
.net ×1
.net-core ×1
c# ×1
mono ×1
monodevelop ×1
printf ×1
source-maps ×1
stl ×1
typescript ×1
vector ×1
wxwidgets ×1
xcode ×1
xcode4.5 ×1