none
在IE中如何调试ATL控件(VS2008) RRS feed

  • 问题

  • 在调试控件中测试ATL控件的效果和在IE中运行的效果有所不同,请问有没有办法在用IE运行ATL控件并在程序中加断点?
    我用的是VS2008,请各位高手指教。谢谢!
    2010年3月7日 9:22

答案

全部回复

  • 当然可以,调试选项中设置被调试的程序为IE,或者在IE运行时在任务管理器中启动进程调试

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2010年3月8日 3:41
    版主
  • 蒋晟,你好!谢谢你的解答。你的两种方法我都试了。但是仍然有些问题。
    我的具体实现步骤如下(我用的是IE 8.0):
    1. 在工程属性的Debug标签下的启动程序(Command)中加上了"C:\Program Files\Internet Explorer\iexplore.exe"。
    2. 在ATL控件中加入断点,启动调试。此时无法进入断点,断点上面有个小叹号,鼠标移上去提示没有加载符号。
    3. 在Debug菜单里选择Attach to process,弹出的进程中有两个iexplore.exe其中一个为灰色,不能Attach,我猜想这个已经被我的程序加载了。于是我Attach了另一个iexplore.exe,程序能够正常进入断点了。
    我的理解是IE一启动就是两个进程一个是IE本身,另一个是IE的标签页。根据是我每新开一个标签页,在Windows任务管理器中都会增加一个iexplore.exe进程。在工程的启动调试的过程中IDE自动Attach了IE本身,但是并没有Attach标签页,因而我的断点无法进入。

    我的问题是,这样每次调试就都得Attach一下,大大降低了工作效率,有没有办法一下子就能干净利落的进入断点呢?

    再次感谢!

    2010年3月8日 7:29
  • http://blogs.msdn.com/greggm/archive/2009/04/01/script-debugging-broken-in-vs-2005-after-installing-ie8.aspx

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2010年3月8日 14:10
    版主