提问人:P. Milev 提问时间:5/25/2020 更新时间:7/2/2020 访问量:4052
VS Code“单步执行”调试器配置
VS Code "step into" debugger configuration
问:
当我在 VS Code 中调试我的 C++ 项目并切换断点时,“单步执行”选项将我重定向到外部文件/库,但我只想单步执行我的代码。
我试图在文件中添加选项,但它说不允许此属性。"justMyCode": true
launch.js
我该怎么做才能只浏览源代码?
答:
0赞
Rohan Bari
5/29/2020
#1
对于这个问题,可以做一件事。我实际上测试了我自己的测试程序:
std::vector<std::string> name;
std::cout << "Enter a name: ";
std::getline(std::cin, name);
nameList.push_back(name); // BREAKPOINT
当我们在断点执行中进行选择时,它会重定向到实际定义它的函数的定义,在这种情况下,它不会只针对您的文件进行调试。Step Into
步入类型:
相反,您必须使用,因为它不会尝试查找函数定义,并且您可以直接调试内容。Step Over
跨步类型:
它肯定会将你重定向到函数定义,无论它在哪里定义,如果你想知道相关函数的声明和其他事情,这是使用 Step Into 的好机会。但是,如果您只想调试该行,而不考虑深入研究并且不想跳转到另一个文件中,则必须使用 .Step Into
Step Over
如果您想了解更多关于 Step Into 和 Step Over 的信息,您可以浏览此 Stack Overflow 线程。我发现这也很有帮助。
评论
2赞
6/1/2020
这不是问题的答案,也不是问题的解决方案。例如,如果你想调试一个自定义类型的构造函数,你需要单步执行 push_back(),你不能只按照你的建议使用“单步执行”。
0赞
Rohan Bari
6/1/2020
只要您步入其中,@para Step Into 将始终深入研究功能及其子功能。这就像你想用做 A 的事情来做 B 一样。 注意:即使在使用“单步执行”之后,您也会在左上角看到变量及其值。
1赞
Rohan Bari
6/1/2020
Visual Studio 和 Visual Studio Code 是不同的。仔细检查问题。
1赞
Taekahn
6/1/2020
这确实回答了这个问题,imo 这是正确的解决方案,因为他想要的功能显然不存在。
2赞
mdatsev
6/3/2020
这并不能回答问题!如果你想单步执行一个参数是内置函数调用的函数,你不能只是单步执行,因为你会跨过整个事情!如果您无法提供解决方案,请不要回答,您可以发表评论!VS 代码有一些扩展可以为其他语言提供此功能,对于 c++ 来说是可能的,也许还没有实现,但这个问题可以正确回答!
-1赞
grizzlybears
7/2/2020
#2
这不是一个完美的答案,
假设您正在调试以下代码:
func_that_we_care ( func_that_we_dont_care( i) ); <== step into this line
你陷入“func_that_we_dont_care”,你可以“走出去”,然后再次“走进”,最终你将能够进入“func_that_we_care”。
评论
1赞
Rohan Bari
7/2/2020
我猜你说的是我在回答中描述的 Step Over。单步执行函数时,必须将您置于函数或子例程的定义中。如果可以在不单步执行的情况下忽略语句,则定义如何执行此操作。func_that_we_dont_care(i))
0赞
Mark Storer
8/24/2020
这种情况可以通过稍微编辑代码来解决。 次优,但有效。auto foo = func_that_we_dont_care_about(i); /n func_that_we_care_about(foo); // step in here
评论