调试在ASP下运行的COM(Visual C++)

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

调试在ASP下运行的COM(Visual C++):

工作环境: win2000 , VC6.0 , IIS5.0

1.写一个调用com的 ASP

2.在asp文件中加上<% Response.Expires = 0 %>使得asp不会被

cache.

3.假定把asp放在Default Web Site(如c:\Inetpub\wwwroot\)下,在IIS 中选择Default Web Site

的属性,在Home Directory tab上,Application Protection:右边combox

选择Hign(Isolated)使得com运行在独立的进程中,click unload button让IIS

unload你的com(If unload button is disabled, you need not click it)

4.把com 的action project configuration 设为Win32 Debug,并且Build

5.用IE浏览该asp,例如:http://127.0.0.1/testasp.asp

6.VC的tool->options, 在debug tab, enable Just-in-time debugging(checkbox)

7.打开windows task manager,在Processes tab可以看到多个dllhost.exe.因为你已经

浏览了该asp,其中一个dllhost.exe就是你的com的host. 找到这个host可以用

下面的方法(MSDN有正统方法介绍,但我没有用成功):在你的com中加入一些

需要大量计算的代码(ASP会调用到的那个method中),如

int x,y;

x=1;

y=2;

for(int i=0 ;i<10000;i++)

{

x=x*y*y;

}

然后多按几次IE的refresh,看看哪个dllhost.exe使用了CPU,就是你要找的。

8.在windows task manager选中这个dllhost.exe,右健选择debug,会有一个

VC6.0程序打开并且attach到这个dllhost.exe进程,在这个VC的Project->Setting->

Debug tab->Category combox, 选择Additional DLLs,在下面的local name list中

加入你的com, 如c:\myproject\testcom\debug\testcom.dll

(VC的debug 可以attach to process,但在win2000下不行,如果能够用vc attach 到

dllhost.exe,也可以直接attach)

9.在这个vc中打开你想设断点 的com的源文件,如c:\myproject\testcom\testcom.cpp

在这个文件中设断点

10.refresh你的IE, 你的断点会生效了!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航