MSVC中有编译器选项可以在进入和退出功能时自动生成仪表调用。这些钩子被称为_penter()和_pexit()。编译器选项有:MSVC _penter和_pexit挂钩可以在每个函数基础上禁用吗?
/Gh的启用_penter钩子函数
/GH启用_pexit钩子函数
是否有编译或某种函数的定义,将关闭在每个功能的基础上使用仪器?我知道使用__declspec(裸体)函数不会被检测到,但这并不总是一个非常实用的选项。我在PC上和非X86平台上都使用MSVC,非X86平台在汇编器中手动编写epilog/prolog是一件痛苦的事情(更不用说它扰乱了调试器堆栈跟踪)。
如果仅在每个文件(编译器选项)的基础上,我认为我将不得不将特殊功能拆分为单独的文件来关闭该选项,但如果我可以控制它会容易得多它在每个文件的基础上。
回退计划,如果这个不能做的是正义之举的功能,以自己的CPP翻译单元和没有选择单独编译。
我认为最好有一些东西可以打开它。我相信它应该对配置文件非常有用。 – Chang 2011-12-29 02:38:34