草庐IT

Breakpoints

全部标签

c++ - GDB:警告:在重载方法上设置了多个断点

anisha@linux-dopx:~>g++-Wall-pedanticbreakpoints.cpp-ganisha@linux-dopx:~>gdba.out(gdb)bX::XBreakpoint1at0x400ac1:filebreakpoints.cpp,line14.Breakpoint2at0x400aa0:filebreakpoints.cpp,line9.warning:Multiplebreakpointswereset.Usethe"delete"commandtodeleteunwantedbreakpoints.(gdb)设置断点的方法是什么在默认构造函数上

c++ - 为什么数据断点对未对齐的地址不起作用

在VisualStudio中调试C++项目时,一些数据断点从未命中。所以我写了一些代码进行测试:#include#includevoidtest(uint32_t*p){*p=0;//setadatabreakpointonp*((char*)p+2)=0x1;std::cout如你所见,在函数测试中,*p的值会先归零,然后它将被隐式更改,我有一个小端CPU所以它必须是65536。如果在p(4个字节)上设置数据断点来检测变化,你会得到两种不同的结果:命中与否。这取决于p指向的地址。在我上面的测试代码中,测试#1会命中而测试#2不会,#1和#2之间的区别是返回的地址分配(0)和分配(2)

c++ - 为什么代码不会在代码块的断点处中断

我按照此视频中的说明逐行运行代码:http://www.youtube.com/watch?v=6CGH9Z19dS8但是,我按F8后,它只是跑了,没有走到断点处(我看不到黄色三角形)。另外,我也尝试了“attachtoprocess”,也是一样。我错过了什么吗?(​​顺便说一句,我的项目中有多个文件,但我想这不是问题,对吧?因为我可以在VSstudio中轻松完成此操作。也许,我不太熟悉代码块)感谢您的帮助!如果你有兴趣,这是调试器日志:Buildingtoensuresourcesareup-to-dateSelectingtarget:ReleaseAddingsourcedir:

c++ - 如何在 Visual C++ 中添加条件断点

我想在VC++Express2005中的代码中添加一个断点条件,以便仅当局部变量满足指定条件时才触发断点。例如boolmy_test(UIDListtest_list){foo(test_list);bar(test_list);//Ihaveabreakpointhere,butonlywantittotriggeriftest_list.Length()>0print(test_list);}右键单击我的断点并选择“条件...”后,我发现了一个对话框,它似乎可以执行我想要的操作,但是我尝试在文本字段中输入的任何内容都会导致以下错误:Unabletoevaluatethebreakp

c++ - 如何在 Visual Studio 的匿名命名空间内通过函数名设置断点?

我有以下代码:namespace{voidFoo(){}}namespaceBar{voidFoo(){}}intmain(){Foo();Bar::Foo();return0;}我想按名称(Ctrl+B键绑定(bind))在匿名命名空间内的Foo()上放置断点。我可以在命名空间Bar中为函数执行此操作,按名称Bar::Foo没有问题。我为匿名命名空间尝试了anonymousnamespace::Foo但VS无法解析此名称,我猜是因为名称中的空白字符。我也试着加上不同的引号,但没有成功。是否可以放置此断点? 最佳答案 我很久以前遇到

c++ - 如何为实例变量设置观察点?

我的类是在头文件中定义的,我需要在GDB中监视它的私有(private)非静态成员,如下所示:classfoo{intbar;}; 最佳答案 您可以在内存地址上设置观察点。您应该在foo构造函数执行后的某处停止您的代码并打印bar变量地址。然后你可以像这样在地址上设置观察点:(gdb)p&bar$1=(int*)0x10793ad0(gdb)watch*0x10793ad0 关于c++-如何为实例变量设置观察点?,我们在StackOverflow上找到一个类似的问题:

c++ - 使用通配符设置断点?

我正在尝试调试一个严重依赖继承的类。调试session很乏味,因为它涉及一个对象在链中的另一个对象上调用相同的函数。我在单步执行不相关的代码上浪费了很多时间,这些代码本可以用在其他地方更好。这是简单的:我想使用通配符在类实例上设置断点,例如bFoo::*.这样,当我感兴趣的东西进入作用域(如静态函数或成员函数)时,调试器就会捕捉。这是困难的一个:参数化类:我想使用通配符在模板化类的成员函数上设置断点,例如bFoo::bar.(实际问题比这更糟糕,因为模板参数本身就是模板类)。虽然GDB似乎让我设置一个,但调试器并没有停止(见下文)。它声称它在未来的负载上设置了一个断点。事实上,我使用静

c++ - 移动 Visual Studio 断点

我最初使用的是VisualStudioC++Express,我已经切换到Ultimate,我目前对调试器移动我的断点的原因感到困惑,例如:if(x>y){intz=x/y;或randomlineofcode它似乎在代码中的随机位置执行此操作。有时我在这里做错了吗?我从来没有遇到过像这样的快速版本的问题。 最佳答案 您正在Release模式下进行调试。if(x>y){//thisstatementdoesnothing//zisalocalvariablethat'sneverused//noexecutablecodeisgener

c++ - XCode 不会破坏 #include 的 CPP 文件

如果您从另一个CPP文件中包含一个CPP文件,XCode将拒绝在包含的CPP文件中的任何断点处中断。我打算向Apple提出一个错误,但只是想在这里提及它,以防其他人遇到这个问题并可能找到解决方法。您可能希望从CPP文件中包含CPP文件,这是有充分理由的,我不会在此处详述。可以这么说,我不能简单地重新安排项目来直接编译包含的文件。示例:一个非常简单的iPhone项目ma​​in.mmexternvoidFunctionInSource1(inta);intmain(intargc,char*argv[]){FunctionInSource1(1);return0;}source1.cpp

c++ - 未命中内联函数中的断点

我有一个以下列方式声明的类:#ifndefMYCLASS_H#defineMYCLASS_HclassMyClass:publicMyOtherClass{public:MyClass();inta()const{return_a;};intb()const{return_b;};private:int_a;int_b;};inlinebooloperator==(constMyClass&lhs,constMyClass&rhs){return(lhs.a()==rhs.a())&&(lhs.b()==rhs.b());}#endif我的问题是在重载的operator==中设置的任何