如何调试asp组件呀。用vc++调试编制的组件
如何调试asp组件呀。用vc++调试编制的组件
给个思路,或者其教程下载路径也可
问题点数:300、回复次数:10Top
1 楼Luck04()回复于 2001-04-21 12:22:00 得分 0
关注Top
2 楼masterz(www.fruitfruit.com)回复于 2001-04-21 12:41:00 得分 0
http://msdn.microsoft.com/scripting/Top
3 楼ghj1976(蝈蝈俊.net)回复于 2001-04-21 16:10:00 得分 0
to masterz() 那里是调试脚本的呀,不是调试vc++程序的Top
4 楼masterz(www.fruitfruit.com)回复于 2001-04-21 16:57:00 得分 0
如果组件可以在非WEB方式下调试,就写一个简单的程序来调用这个组件,在PROJECT->SETTING->SETTING FOR DEBUG->DEBUG->EXECUTABLE FOR DEBUG SESSION设为那个EXE.
如果一定要在ASP下调试,见MSDN:
Debugging ASP Applications, Part 2
Q192754 "HOWTO: Debug InProc COM Components Inside IIS Using WINDBG"
Q99953: "WinDbg Message 'Breakpoint Not Instantiated'" Top
5 楼seesi(不是我想骗你,是我不知道怎么才能不骗!)回复于 2001-04-21 17:09:00 得分 0
关注Top
6 楼ghj1976(蝈蝈俊.net)回复于 2001-04-21 17:38:00 得分 0
我做的是一个asp用的上载组件
另外,我用的msdn中没这一部分,你能不能把重点贴出来呀??
谢谢Top
7 楼ghj1976(蝈蝈俊.net)回复于 2001-04-21 17:48:00 得分 0
另外我的组件要注册后才能使用,这个如何调试呀???
Top
8 楼masterz(www.fruitfruit.com)回复于 2001-04-22 00:26:00 得分 300
我不知道你的“组件要注册后才能使用“是什么意思,你在build时VC已经帮你register这个com 了,是不是这种注册呢?
调试在ASP下运行的COM(Visual C++):
Environment: 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;
x=x+y;
y = x+y;
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, 你的断点会生效了!Top
9 楼ghj1976(蝈蝈俊.net)回复于 2001-04-24 08:36:00 得分 0
谢谢masterz,真的好了Top
10 楼ghj1976(蝈蝈俊.net)回复于 2001-04-24 08:37:00 得分 0
谢谢文档中心的那篇文章,Top




