Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
gtest:将gdb断点放在何处_Gdb_Googletest - Fatal编程技术网

gtest:将gdb断点放在何处

gtest:将gdb断点放在何处,gdb,googletest,Gdb,Googletest,我多年来一直在使用各种xunit测试(从21世纪初的CPPFUnit开始)。在所有情况下,设置故障断点都非常容易:有一个功能指示检测到的故障: b'atf::tests::tc::fail(std::string const&)' 命令 上升1 结束 似乎gtest是完全不同的,对gtest进行相同操作的既定实践是什么 gtest的既定做法是什么 阅读gtest.cc,我看到的最接近的是——gunit_break_on_failure,这应该会导致代码在x86/Linux上执行INT3陷阱,并在

我多年来一直在使用各种xunit测试(从21世纪初的CPPFUnit开始)。在所有情况下,设置故障断点都非常容易:有一个功能指示检测到的故障:

b'atf::tests::tc::fail(std::string const&)' 命令 上升1 结束

似乎gtest是完全不同的,对gtest进行相同操作的既定实践是什么

gtest的既定做法是什么


阅读
gtest.cc
,我看到的最接近的是
——gunit_break_on_failure
,这应该会导致代码在x86/Linux上执行
INT3
陷阱,并在Windows上调用
DebugBreak

如果您需要在测试开始时中断以观察某些情况,首先,并grep输入感兴趣的测试名称,例如:

nm -C myclass_test | grep MyTest0
如果您想在以下地点休息:

TEST(MainTest, MyTest0) {
    EXPECT_EQ(1, 1);
}
在grep的结果中,最有希望的结果似乎是:

0000000000407c64 T MainTest_MyTest0_Test::TestBody()
因此:

gdb myclass_test
以及:

然后这就让我在想要的测试开始时离开了


在修订版2上测试。

它有点有效-但到目前为止,我看不到在非致命故障后继续并关联调试器命令(例如“up 2”)的方法。如果您使用的是“Linux/x86”,则可以使用GDB
signal 0
命令从
int3
继续。
b MainTest_MyTest0_Test::TestBody
r