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