Каково различие между gcc-ggdb и gcc-g

Спящий режим является чисто программным, процесс, выполняющий его, не подходит для ЦП / ядер в течение, по крайней мере, указанного времени, но весь ваш Ubuntu не заморожен, а ЦП / ядра доступны для других процессов. После, если во время сна делать нечего, процессор / ядра экономят энергию, но это непосредственно не требуется самой команде sleep

75
задан piperchester 29 August 2015 в 16:36
поделиться

3 ответа

Возможно, что нет никакого различия - зависит от собственного формата ОС и как портативный Вы хотите, чтобы информация об отладке была. См. руководство GCC Параметры отладки .

29
ответ дан luapyad 24 November 2019 в 11:42
поделиться

Одна вещь состоит в том, что "-g" является портативным (например, в Make-файлах, предназначенных, чтобы быть выполненным на платформах не-GNU). У меня была проблема мобильности относительно-g по сравнению с-ggdb на машине AIX недавно, вот почему я поднимаю его.

Никакая идея о том, что-ggdb добавляет в удобстве использования, все же.

6
ответ дан DevSolar 24 November 2019 в 11:42
поделиться

У меня есть по крайней мере один пример, где -ggdb сработал для меня лучше, чем другой вариант отладки, который мы использовали:

amitkar@lohgad:~> cat > main.c
#include <stdio.h>

int main(int argc, char **argv)
{
        printf("Args :%d\n", argc);
        for ( ;argc > 0;)
                printf("%s\n", argv[--argc]);

        return 0;
}
amitkar@lohgad:~> gcc -gstabs+ main.c -o main

amitkar@lohgad:~> file main
main: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), for GNU/Linux 2.6.4, dynamically linked (uses shared libs), not stripped
amitkar@lohgad:~> /usr/bin/gdb ./main
GNU gdb 6.6.50.20070726-cvs
Copyright (C) 2007 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-suse-linux"...
Using host libthread_db library "/lib64/libthread_db.so.1".
(gdb) break main
Breakpoint 1 at 0x400577: file main.c, line 5.
(gdb) run
Starting program: /home/amitkar/main

Breakpoint 1, main (argc=Cannot access memory at address 0x8000df37d57c
) at main.c:5
5               printf("Args :%d\n", argc);
(gdb) print argc
Cannot access memory at address 0x8000df37d57c
(gdb)

Примечание: это происходит только на компьютерах x86-64 и исчезает при компиляции с -ggdb. Но более новые версии отладчика работают даже с -gstabs +

10
ответ дан 24 November 2019 в 11:42
поделиться
Другие вопросы по тегам:

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