eclipse调试EPIC


最近一直在研究PERL,完成部分底层工作后,现在开始规划调度界面。

用到了EPIC,想到一个方案,就是基于EPIC来完成后续的开发,但今天思考后还是不用这个方案,所以,有必要把这段作个小结。


不过,分析的过程,其中一个重点,就是分析EPIC如何调用PadWalk,这个方面,虽然还没有找到所有的信息,但了解到了一部分。


1. 首先下载 eclipse-rcp-kepler-SR1-win32.zip

解压后,装好EPIC.这个我就不多说了,我前面有写过。

2. 启动后,Import  : plugins fragments

eclipse调试EPIC_第1张图片


然后,见图,选择也引入代码:


eclipse调试EPIC_第2张图片

然后导入:

eclipse调试EPIC_第3张图片


这里,我就不扯没用的了。

首先,我们的目标是分析EPIC如何调用了用Padwalk,

所以,应当先在所有的地方查下这个关键字:padwalk.


然后下断。


这个我就省略了。

#ifdef __cplusplus
extern "C"
#endif
XS_EXTERNAL(boot_PadWalker); /* prototype to pass -Wmissing-prototypes */
XS_EXTERNAL(boot_PadWalker)
{
    dVAR; dXSARGS;
#if (PERL_REVISION == 5 && PERL_VERSION < 9)
    char* file = __FILE__;
#else
    const char* file = __FILE__;
#endif

    PERL_UNUSED_VAR(cv); /* -W */
    PERL_UNUSED_VAR(items); /* -W */
#ifdef XS_APIVERSION_BOOTCHECK
    XS_APIVERSION_BOOTCHECK;
#endif
    XS_VERSION_BOOTCHECK;

        newXS("PadWalker::peek_my", XS_PadWalker_peek_my, file);
        newXS("PadWalker::peek_our", XS_PadWalker_peek_our, file);
        newXS("PadWalker::peek_sub", XS_PadWalker_peek_sub, file);
        newXS("PadWalker::set_closed_over", XS_PadWalker_set_closed_over, file);
        newXS("PadWalker::closed_over", XS_PadWalker_closed_over, file);
        newXS("PadWalker::var_name", XS_PadWalker_var_name, file);
        newXS("PadWalker::_upcontext", XS_PadWalker__upcontext, file);
#if (PERL_REVISION == 5 && PERL_VERSION >= 9)
  if (PL_unitcheckav)
       call_list(PL_scopestack_ix, PL_unitcheckav);
#endif
    XSRETURN_YES;
}

明天有时间补上,

现在,马上写如何调试。

eclipse调试EPIC_第4张图片



先到这。


你可能感兴趣的:(eclipse)