C++ 我可以在没有main()函数的情况下调试(逐步调试)代码吗?
假设我想通过使用调试器单步执行代码来理解一个更大的项目。是否可以在任意点跳入(假设我定义了正确的变量)?如何调试没有main的库?要调试库中的代码,请编写一个小应用程序(它有一个C++ 我可以在没有main()函数的情况下调试(逐步调试)代码吗?,c++,debugging,code-analysis,C++,Debugging,Code Analysis,假设我想通过使用调试器单步执行代码来理解一个更大的项目。是否可以在任意点跳入(假设我定义了正确的变量)?如何调试没有main的库?要调试库中的代码,请编写一个小应用程序(它有一个main())来调用库中需要调试的函数。然后调试该应用程序并进入它进行的库调用 至于“跳入任意位置”-您可以指示调试器将指令指针移动到任何您喜欢的位置,但这通常不是您想要的,因为您将丢失程序前面部分将创建的许多状态。通常,您要做的是在感兴趣的函数中设置一个断点,然后正常运行程序,直到达到断点。要调试库中的代码,请编写一个
main()
)来调用库中需要调试的函数。然后调试该应用程序并进入它进行的库调用
至于“跳入任意位置”-您可以指示调试器将指令指针移动到任何您喜欢的位置,但这通常不是您想要的,因为您将丢失程序前面部分将创建的许多状态。通常,您要做的是在感兴趣的函数中设置一个断点,然后正常运行程序,直到达到断点。要调试库中的代码,请编写一个小应用程序(它有一个
main()
),调用库中需要调试的函数。然后调试该应用程序并进入它进行的库调用
至于“跳入任意位置”-您可以指示调试器将指令指针移动到任何您喜欢的位置,但这通常不是您想要的,因为您将丢失程序前面部分将创建的许多状态。通常,您要做的是在感兴趣的函数中设置一个断点,然后正常运行程序,直到达到断点。最好的方法是按原样运行应用程序,并在需要查看时设置断点。问题是程序可能会执行很多初始化和其他您无法理解的操作。
另一种方法是关注单元测试。它们就像小程序本身,只针对程序的特定部分。最好的方法是按原样运行应用程序,并在需要查看时设置断点。问题是程序可能会执行很多初始化和其他您无法理解的操作。
另一种方法是关注单元测试。它们就像小程序本身,只针对程序的特定部分。库没有主程序。这就是为什么您的测试代码有一个,您可以从那里开始调试。这是可能的,但前提是您是调试专家,并且可以使用调试器命令手动构造调用堆栈框架。@RichardCriten我该怎么做呢?也许可以了解单元测试库没有main。这就是为什么您的测试代码有一个调用堆栈框架,您可以从那里开始调试。这是可能的,但前提是您是调试专家,并且可以使用调试器命令手动构造调用堆栈框架。@RichardCriten我该怎么做?也许可以学习单元测试