perintah set backtrace past-main

Menentukan apakah GDB akan menampilkan frame-frame di bawah main() dalam backtrace.

Sintaks

set backtrace past-main on
set backtrace past-main off
show backtrace past-main

Mode

on
Dalam mode ini, GDB akan menampilkan frame-frame di bawah main(), seperti mainCRTStartup(). Mode ini berguna saat debugging isu-isu terkait CRT.
off
Dalam mode ini, GDB tidak akan menyembunyikan frame-frame di bawah main(). Mode ini dipilih secara default dan berguna saat debugging program normal secara umum.

Nilai Default

Nilai default untuk variabel backtrace past-main adalah off.

Catatan

Perhatikan bahwa jika Anda mengatur variabel backtrace past-main ke on, GDB akan menampilkan frame-frame di bawah main() namun tidak di bawah titik masuk eksekusi program Anda. Gunakan perintah set backtrace past-entry untuk mengubah perilaku ini.

Contoh

Pada contoh ini, kami akan melakukan debugging program sederhana yang terdiri dari 2 fungsi:

                        
#include 

void func()
{
    printf("Hello from func()\n");
}

int main(int argc, char *argv[])
{
    func();
    return 0;
}
                        
                    

Contoh berikut menunjukkan bagaimana perintah set backtrace past-main memengaruhi output dari perintah backtrace:

                        
(gdb) break func
Breakpoint 1 at 0x401392: file 0.cpp, line 5.
(gdb) run
Starting program: c:\mingw\bin\0.exe
[New Thread 176.0xb8]

Breakpoint 1, func () at 0.cpp:5
5 printf("Hello from func()\n");
(gdb) show backtrace past-main
Whether backtraces should continue past "main" is off.
(gdb) backtrace
#0 func () at 0.cpp:5
#1 0x004013b0 in main (argc=1, argv=0x3e3f48) at 0.cpp:10
(gdb) set backtrace past-main on
(gdb) backtrace
#0 func () at 0.cpp:5
#1 0x004013b0 in main (argc=1, argv=0x3e3f48) at 0.cpp:10
#2 0x004010b9 in __mingw_CRTStartup () at ../mingw/crt1.c:244
#3 0x00401284 in mainCRTStartup () at ../mingw/crt1.c:264