GNU/Linux >> Znalost Linux >  >> Linux

ladění šablon pomocí GDB

pokud je váš problém pouze o umístění bodu přerušení do vašeho kódu. Zde je malý úryvek

např.: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));
}

zkompilovat pomocí 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

jinak můžete použít

(gdb) b main.cpp:16

Linux
  1. Trasování jádra pomocí trace-cmd

  2. Oprava binárního kódu pomocí Dd?

  3. Jak získat trasování zásobníku pro C++ pomocí gcc s informacemi o čísle řádku?

  1. Jak mohu analyzovat soubor výpisu jádra programu pomocí GDB, když má parametry příkazového řádku?

  2. Vzdálené ladění C++ aplikace s Eclipse GUI

  3. Ladění linuxového jádra pomocí QEMU

  1. Vzdálené ladění linuxového procesu z Windows pomocí gdb a gdbserver:co přesně je potřeba na straně Windows?

  2. Jak chytit Ctrl+C na Windows a Linux s Qt

  3. Ladění základních souborů generovaných v krabici zákazníka