我可以在没有 main() 函数的情况下调试(逐步执行)代码吗?
Can I debug (step through) code without a main() function?
假设我想通过使用调试器单步执行代码来了解一个更大的项目。是否可以在任意点跳入(假设我定义了正确的变量)?如何调试没有 main 的库?
要调试库中的代码,请编写一个小应用程序(具有 main()
)来调用您需要调试的库中的函数。然后调试该应用程序并进入它调用的库。
至于 "jumping into an arbitrary location" - 好吧,你 可以 指示调试器将指令指针移动到任何你喜欢的地方,但这通常不是你想要的,因为您会错过程序的先前部分将创建的很多状态。通常你想要做的是在你感兴趣的函数中设置一个断点,然后 运行 程序正常运行,直到你到达断点。
最好的方法是 运行 应用程序原样,并在您想查看时设置断点。问题是程序可能会做很多初始化和其他事情,你无法弄清楚。
另一种方法是寻找单元测试。它们就像小程序本身,只针对程序的特定部分。
假设我想通过使用调试器单步执行代码来了解一个更大的项目。是否可以在任意点跳入(假设我定义了正确的变量)?如何调试没有 main 的库?
要调试库中的代码,请编写一个小应用程序(具有 main()
)来调用您需要调试的库中的函数。然后调试该应用程序并进入它调用的库。
至于 "jumping into an arbitrary location" - 好吧,你 可以 指示调试器将指令指针移动到任何你喜欢的地方,但这通常不是你想要的,因为您会错过程序的先前部分将创建的很多状态。通常你想要做的是在你感兴趣的函数中设置一个断点,然后 运行 程序正常运行,直到你到达断点。
最好的方法是 运行 应用程序原样,并在您想查看时设置断点。问题是程序可能会做很多初始化和其他事情,你无法弄清楚。
另一种方法是寻找单元测试。它们就像小程序本身,只针对程序的特定部分。