Windows cl.exe标志或设置,用于在/O1或更高级别禁用尾部调用优化(相当于gcc-fno优化同级调用)

Windows cl.exe标志或设置,用于在/O1或更高级别禁用尾部调用优化(相当于gcc-fno优化同级调用),windows,visual-c++,Windows,Visual C++,我在一个项目中工作,我们维护自己的堆栈爬虫(出于各种原因)。我们需要能够以一定的可靠性对堆栈进行爬网。目前,我们遇到了一个问题,函数尾部调用我们感兴趣的函数,堆栈跟踪跳过调试构建(/Od)中出现的帧。我们已经禁用了帧指针优化和内联(/Oy-和/Ob0),因此可以获得更好的堆栈跟踪,但我们仍然希望能够启用一些优化(/O1),以加快代码的速度。但是,尾部调用仍然会干扰堆栈跟踪 是否有任何标志或设置会禁用MSVC中的此优化?gcc有-f(no-)优化同级调用,这就涵盖了这一点。否,您可以将尾部调用函数

我在一个项目中工作,我们维护自己的堆栈爬虫(出于各种原因)。我们需要能够以一定的可靠性对堆栈进行爬网。目前,我们遇到了一个问题,函数尾部调用我们感兴趣的函数,堆栈跟踪跳过调试构建(/Od)中出现的帧。我们已经禁用了帧指针优化和内联(/Oy-和/Ob0),因此可以获得更好的堆栈跟踪,但我们仍然希望能够启用一些优化(/O1),以加快代码的速度。但是,尾部调用仍然会干扰堆栈跟踪


是否有任何标志或设置会禁用MSVC中的此优化?gcc有-f(no-)优化同级调用,这就涵盖了这一点。

否,您可以将尾部调用函数放在单独的编译模块中,只编译它而不进行优化。

否,您可以将尾部调用函数放在一个单独的编译模块中,只编译它而不进行优化。

生产和测试都需要它吗?生产和测试都需要它吗?