【发布时间】:2009-01-21 11:23:45
【问题描述】:
我每次执行 snmpwalk(另一个控制台应用程序)时都有由 Windows SNMP 服务 (snmp.exe) 调用的 SNMP 扩展代理 DLL。我想进入从上述 Windows 调用的 DLL 代码 服务。我该怎么做呢?
谢谢 索姆
【问题讨论】:
标签: c dll windows-services
我每次执行 snmpwalk(另一个控制台应用程序)时都有由 Windows SNMP 服务 (snmp.exe) 调用的 SNMP 扩展代理 DLL。我想进入从上述 Windows 调用的 DLL 代码 服务。我该怎么做呢?
谢谢 索姆
【问题讨论】:
标签: c dll windows-services
通常,您会将调试器附加到使用您的 DLL 的正在运行的进程,然后像往常一样与调试器交互。
在 Visual Studio 2008 中,您可以通过使用“调试”>“附加到进程”来执行此操作,然后选择正确的进程。至少我依稀记得以前是这么干的。
【讨论】:
您可以按照 Timo Geusch 的建议从 Visual Studio 附加到正在运行的服务。之后,您可以在代码中设置断点。您还可以在要调试库的地方添加对DebugBreak 函数的调用。如果要调试的代码在附加到进程之前执行(例如,如果您的代码在服务启动事件的处理程序中执行),这可以帮助您。
编辑:您可以附加到任何服务,即使您没有调试信息,但在这种情况下,您将无法看到函数调用上方的堆栈跟踪。
【讨论】: