отладка шаблонов с GDB

Я соглашаюсь с использованием команды перемещения svn для выполнения этой цели.

я знаю, что другие здесь думают его необычное, но мне нравится делать это этот путь. Когда у меня есть ответвление функции, и готово объединить его с соединительной линией, которая имеет также быть значительно измененной, я объединю его с новым ответвлением, обычно называемым <FeatureBranchName>-Merged. Тогда я разрешаю конфликты и тестирую объединенный код. Как только это завершено, я перемещаю соединительную линию в папку тегов, таким образом, я ничего не теряю. Наконец я перемещаю мой <FeatureBranchName>-Merged в соединительную линию.

, Кроме того, я предпочитаю избегать рабочей копии при выполнении перемещений вот образцы команд:

svn move https://SVNUrl/svn/Repo/trunk https://SVNUrl/svn/Repo/tags/AnyName

svn move https://SVNUrl/svn/Repo/branches/BranchName-Merged https://SVNUrl/svn/Repo/trunk

Примечание: Я использую 1.5

11
задан Ciro Santilli 新疆改造中心法轮功六四事件 30 December 2016 в 16:55
поделиться

1 ответ

if your problem is just about placing breakpoint in your code. Here is a little snippet

ex: main.cpp

#include <iostream>

template <typename T>
void coin(T v)
{
    std::cout << v << std::endl;
}

template<typename T>
class Foo
{
public:

    T bar(T c)
    {
        return c * 2;
    }
};

int main(int argc, char** argv)
{
    Foo<int> f;
    coin(f.bar(21));
}

compile with g++ -O0 -g main.cpp

gdb ./a.out
(gdb) b Foo<int>::bar(int)
Breakpoint 2 at 0x804871d: file main.cpp, line 16.
(gdb) b void coin<int>(int)
Breakpoint 1 at 0x804872a: file main.cpp, line 6.
(gdb) r
... debugging start

otherwise you could just use

(gdb) b main.cpp:16
11
ответ дан 3 December 2019 в 09:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: