Как установить точку останова по имени функции в анонимном пространстве имен в Visual Studio? - PullRequest
6 голосов
/ 12 сентября 2011

У меня есть следующий код:

namespace
{
    void Foo()
    {
    }
}

namespace Bar
{
    void Foo()
    {
    }
}

int main()
{
    Foo();
    Bar::Foo();

    return 0;
}

Я хочу поставить точку останова на Foo() внутри анонимного пространства имен по имени (связывание клавиш Ctrl + B).Я могу сделать это для функции внутри именованного пространства имен Bar без проблем по имени Bar::Foo.Я попытался anonymous namespace::Foo для анонимного пространства имен, но VS не удалось разобрать это имя, я думаю, из-за пробела в имени.Также я пытался поставить разные кавычки, но безуспешно.Можно ли вообще поставить эту точку останова?

Ответы [ 2 ]

3 голосов
/ 12 сентября 2011

Я сталкивался с подобной проблемой очень давно ( Отладка данных в «произвольных пространствах имен» (C ++) ). Я хотел посмотреть на значение элемента данных в безымянном пространстве имен, но не смог этого сделать.

Наконец, кто-то указал мне на http://msdn.microsoft.com/en-us/library/0888kc6a%28VS.80%29.aspx. Может быть, вы можете получить имя оформленной функции и поставить точку останова на этом.

0 голосов
/ 12 сентября 2011

Похоже, Visual Studio не может установить точку останова по имени функции в анонимном пространстве имен.Даже WinDbg не может этого сделать.

Если у вас есть источники, вы можете установить точку останова за строкой.

...