GNU/Linux >> Belajar Linux >  >> Linux

men-debug template dengan GDB

jika masalah Anda hanya tentang menempatkan breakpoint dalam kode Anda. Ini sedikit cuplikan

mis: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));
}

kompilasi dengan 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

jika tidak, Anda bisa menggunakan

(gdb) b main.cpp:16

Linux
  1. Men-debug proses Linux dari jarak jauh dari Windows dengan gdb dan gdbserver:apa sebenarnya yang dibutuhkan di sisi Windows?

  2. Bagaimana cara mendapatkan jejak tumpukan untuk C++ menggunakan gcc dengan informasi nomor baris?

  3. Cara menangkap Ctrl+C di Windows dan Linux dengan Qt

  1. Bagaimana cara menganalisis file dump inti program dengan GDB ketika memiliki parameter baris perintah?

  2. Men-debug file inti yang dibuat di kotak Pelanggan

  3. Bagaimana cara men-debug kernel Linux dengan GDB dan QEMU?

  1. GDB dan masalah dengan core dumps

  2. Kesalahan GDB:Arsitektur yang dipilih i386 tidak kompatibel dengan arsitektur target yang dilaporkan i386:x86-64

  3. umask saat ini dari proses dengan <pid>