Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在注释行上调用断点_C++_Visual Studio_Visual Studio 2013 - Fatal编程技术网

C++ 在注释行上调用断点

C++ 在注释行上调用断点,c++,visual-studio,visual-studio-2013,C++,Visual Studio,Visual Studio 2013,这让我完全不知所措。 这看起来像是VS中的一个bug,但我确信这只是我做错了什么 在调试代码时,我特别注意到一个函数触发了一个断点——从未被调用过。我从层次结构中通过搜索所有引用来验证没有任何东西在调用它 然后我注释掉了代码;而且它仍在到达断点(是的,在注释行上) 然后我移动了注释过的代码,发现函数不再被调用,但在同一行周围另一个注释过的字符串被调用了 事实证明,此.cpp上第31行和第43行之间的任何一行(即使在函数之间或注释掉的函数之间)都将触发断点,即使没有断点 例如: void Name

这让我完全不知所措。 这看起来像是VS中的一个bug,但我确信这只是我做错了什么

在调试代码时,我特别注意到一个函数触发了一个断点——从未被调用过。我从层次结构中通过搜索所有引用来验证没有任何东西在调用它

然后我注释掉了代码;而且它仍在到达断点(是的,在注释行上)

然后我移动了注释过的代码,发现函数不再被调用,但在同一行周围另一个注释过的字符串被调用了

事实证明,此.cpp上第31行和第43行之间的任何一行(即使在函数之间或注释掉的函数之间)都将触发断点,即使没有断点

例如:

void Namespace::Foo()
{
    ... code ...
}

<<<<< THIS TRIGGERS A BREAKPOINT!>>>>>

void Namespace::Bar()
{
    ... code ...
}
这是第一行(31)。这介于两个不同的功能之间:

void ErrHandling::vDX_WRITE(const TCHAR* text)
{
    _TCHAR str[MAX_PATH] = _T("");

    // Start with date/time
    LPTSTR string = mFormatTimeNow();
    _tcscat_s(str, 100, string);

    _tcscat_s(str, _MAX_PATH, text); // Write the specific string

    mWriteToFile(str); // Dispatch to file
}
<<<<<<<<<<<<<<<<<<<LINE 31>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
const TCHAR* ErrHandling::stringFromError(TCHAR* szErr, long nSize, long nErr)
{
    _ASSERTE(szErr);
    *szErr = 0;
    DWORD cb = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, 0, nErr, 0, szErr, nSize, 0);
    TCHAR szUnk[] = _T("<unknown>");
    if (!cb && nSize >= lengthof(szUnk)) lstrcpy(szErr, szUnk);
    return szErr;
}
void ErrHandling::vDX_WRITE(const TCHAR*text)
{
_TCHAR str[MAX_PATH]=\u T(“”);
//从日期/时间开始
LPTSTR string=mFormatTimeNow();
_tcscat_s(str,100,string);
_tcscat_s(str,_MAX_PATH,text);//写入特定字符串
mWriteFile(str);//分派到文件
}
>>>>>>>>>>
常量TCHAR*ErrHandling::stringFromError(TCHAR*szErr、long nSize、long nErr)
{
_阿塞尔特(szErr);
*szErr=0;
DWORD cb=格式化消息(格式化消息来自格式化系统,0,nErr,0,szErr,nSize,0);
TCHAR szUnk[]=_T(“”);
如果(!cb&&nSize>=lengthof(szUnk))lstrcpy(szErr,szUnk);
返回szErr;
}

我看到过类似的问题,结果证明是由单个源文件中使用的不同行尾引起的-一些行尾是unix样式(LF),一些是windows(CRLF)。我不确定是否可以在visual studio编辑器中看到行尾,但有“文件->高级保存”选项可以在保存时预测转换它们。

可能有很多不同的内容,但由于您没有粘贴实际代码,所以很难说。@cdhowie我不确定要粘贴什么代码,不管我放了什么代码,它都会发生。好像文件本身被破坏了调用堆栈是什么样子的?您正在尝试调试优化的生成吗?您是否尝试过删除所有生成工件并重新生成?@RetiredInja优化已禁用。清洁。重建。还在发生,宾果!多谢。必须从自定义中启用文件>高级保存选项菜单。不正确的格式一定是从其他页面或我的评论块中复制过来的。
void ErrHandling::vDX_WRITE(const TCHAR* text)
{
    _TCHAR str[MAX_PATH] = _T("");

    // Start with date/time
    LPTSTR string = mFormatTimeNow();
    _tcscat_s(str, 100, string);

    _tcscat_s(str, _MAX_PATH, text); // Write the specific string

    mWriteToFile(str); // Dispatch to file
}
<<<<<<<<<<<<<<<<<<<LINE 31>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
const TCHAR* ErrHandling::stringFromError(TCHAR* szErr, long nSize, long nErr)
{
    _ASSERTE(szErr);
    *szErr = 0;
    DWORD cb = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, 0, nErr, 0, szErr, nSize, 0);
    TCHAR szUnk[] = _T("<unknown>");
    if (!cb && nSize >= lengthof(szUnk)) lstrcpy(szErr, szUnk);
    return szErr;
}