2015-07-13 69 views
0

我目前正在创建一个服务,我需要调试它们。我也使用“附加到进程”的形式。自动“附加到进程”的服务调试

(作为第一款http://docwiki.embarcadero.com/RADStudio/XE8/en/Debugging_Service_Applications描述),但它可以自动调试程序与服务关联起来后建造它们?

我已经使用预生成事件重新启动我的服务。

+1

如果您正确构建了您的服务,它应该在服务启动时启动一个线程。制作一个简单的控制台应用程序,它执行相同的操作(即启动线程)并调试控制台应用程序... – whosrdaddy

回答

3

停止,但它可能自动将调试器与构建它们后的服务相关联?

不,它不是。调试器无法直接启动服务可执行文件,只有SCM可以执行此操作。尽管SCM可以通过编程来启动可编程服务,例如从命令行批处理文件启动,但调试器不能以可编程方式附加到正在运行的进程,只能手动执行。

0

您可以构建一个与服务相同的普通应用程序来调试您的代码。只需将所有需要的单位添加到第二个项目。我们用这种方式来调试我们的服务(另外这个应用程序包含一个日志文件查看器,我们可以看我们的服务生产生活日志)

Antother方法IST如下:

  • 创建“markerfile”的地方(只是一个简单的文本文件)
  • 服务内部有一个循环,退出时的标记文件不存在
  • 设置断点只是等待循环后
  • 启动服务(它循环等待:l,markerfile到b Ë删除
  • 调试器附加到服务过程
  • 删除“markerfile”
  • 服务退出等待循环,并在您的断点
  • 调试
相关问题