🌐
Greenfield Community College
gcc.mass.edu › academics
Academics – Greenfield Community College
At Greenfield Community College, you are not just a number—you are part of a community of scholars. Our vision is to strengthen our community—one student at a time. ... Our doors are open for all who seek to learn.
🌐
Genesee Community College
genesee.edu › home › academics
Academics - Genesee Community College
March 20, 2025 - GCC provides a selection of over 600 courses per semester.
🌐
CISA
cisa.gov › resources-tools › groups › government-coordinating-councils
Government Coordinating Councils | CISA
Government Coordinating Councils (GCCs) are formed as the government counterpart for each Sector Coordinating Council (SCC) to enable interagency and cross-jurisdictional coordination.
🌐
Hacker News
news.ycombinator.com › item
Claude’s C Compiler vs. GCC | Hacker News
2 weeks ago - Pro-LLM coding agents: look! a working compiler built in a few hours by an agent! this is amazing · Anti-LLM coding agents: it's not a working compiler, though. And it doesn't matter how few hours it took, because it doesn't work. It's useless
🌐
Glendale Community College
glendale.edu › apply
Apply to GCC | Glendale Community College
HIGH SCHOOL STUDENTS Attend GCC while in high school. CONTINUING EDUCATION Noncredit classes on the Garfield Campus.
🌐
Greenfield Community College
gcc.mass.edu › home
Welcome - About GCC
August 21, 2023 - GCC is a public, not-for-profit, two-year college accredited by the New England Commission of Higher Education, and we work closely with bachelor degree granting colleges of the Massachusetts public higher education system, including the University of Massachusetts, and with private colleges and universities, which enables us to offer diverse transfer opportunities to our students.
🌐
Guamcc
guamcc.edu
Guam Community College | GCC Guam
Learn to crush it in teamwork, ... we’ve got a session for you. Don’t wait! The last day to register is Tuesday, March 10, 2026. ... The Adult Education Programs Department is now offering online classes beginning March 10. Call the office at 671-735-6010 or email gccadulteducation@guamcc.edu ...
Find elsewhere
🌐
Gcccharters
gcccharters.org
Gateway Community Charters - Home
GCC · Departments · PORTRAIT · of a Graduate · Latest · VIEW ALL NEWS · Events · Calendars · GCC Event Calendar · Learn More · Staff Directory · OPEN LINK · Board Agendas · OPEN LINK · Job Opportunities · OPEN LINK · Family Resources ·
🌐
CA
gcc.sco.ca.gov
GCC
California State Controller's Office (SCO): Government Compensation in California (GCC) website
Top answer
1 of 7
74

That's kind of right, but incomplete. -g requests that the compiler and linker generate and retain source-level debugging/symbol information in the executable itself.

If...

  • the program happens to later crash and produce a core file (which suggests some problem in the actual code), or
  • a deliberate OS command forced it to core (e.g. kill -SIGQUIT pid), or
  • the program calls a function that dumps core (e.g. abort)

...- none of which are actually caused by the use of -g - then the debugger will know how to read that "-g" symbol information from the executable and cross-reference it with the core. This means you can see the proper names of variables and functions in your stack frames, get line numbers and see the source as you step around in the executable.

That debug information is useful whenever debugging - whether you started with a core or just the executable alone. It even helps produce better output from commands like pstack.

Note that your environment may have other settings to control whether cores are generated (they can be big, and there's no general way to know if/when they can be removed, so they're not always wanted). For example, on UNIX/LINUX shells it's often ulimit -c.

You may also be interested to read about DWARF Wikipedia - a commonly used debugging information format for encoding the embedded debug/symbol information in executable/library objects (e.g. on UNIX and Linux).

UPDATE per Victor's request in comments...

Symbol information lists identifiers from the source code (usually only after any name mangling needed), the (virtual) memory addresses/offsets at which they'll be loaded in the process memory, the type (e.g. data vs. code). For example...

$ cat ok.cc
int g_my_num;
namespace NS { int ns_my_num = 2; }
int f() { return g_my_num + NS::ns_my_num; }
int main() { return f(); }

$ g++ -g ok.cc -o ok    # compile ok executable with symbol info

$ nm ok    # show mangled identifiers
00000000004017c8 d _DYNAMIC
0000000000401960 d _GLOBAL_OFFSET_TABLE_
0000000000400478 R _IO_stdin_used
                 w _ITM_deregisterTMCloneTable
                 w _ITM_registerTMCloneTable
                 w _Jv_RegisterClasses
000000000040037c T _Z1fv                     # this is f()
0000000000401798 D _ZN2NS9ns_my_numE         # this is NS::ns_my_num
00000000004017a8 d __CTOR_END__
00000000004017a0 d __CTOR_LIST__
00000000004017b8 d __DTOR_END__
00000000004017b0 d __DTOR_LIST__
0000000000400540 r __FRAME_END__
00000000004017c0 d __JCR_END__
00000000004017c0 d __JCR_LIST__
00000000004017c8 d __TMC_END__
00000000004017c8 d __TMC_LIST__
0000000000401980 A __bss_start
0000000000401788 D __data_start
0000000000400440 t __do_global_ctors_aux
00000000004002e0 t __do_global_dtors_aux
0000000000401790 d __dso_handle
0000000000000000 a __fini_array_end
0000000000000000 a __fini_array_start
                 w __gmon_start__
0000000000000000 a __init_array_end
0000000000000000 a __init_array_start
00000000004003a0 T __libc_csu_fini
00000000004003b0 T __libc_csu_init
                 U __libc_start_main
0000000000000000 a __preinit_array_end
0000000000000000 a __preinit_array_start
0000000000401980 A _edata
0000000000401994 A _end
0000000000400494 T _fini
000000000040047c T _init
0000000000400220 T _start
000000000040024c t call_gmon_start
0000000000401980 b completed.6118
0000000000401788 W data_start
0000000000400270 t deregister_tm_clones
0000000000401988 b dtor_idx.6120
0000000000401994 A end
0000000000400350 t frame_dummy
0000000000401990 B g_my_num                   # our global g_my_num
0000000000400390 T main                       # the int main() function
00000000004002a0 t register_tm_clones

$ nm ok | c++filt            # c++filt "unmangles" identifiers...
00000000004017c8 d _DYNAMIC
0000000000401960 d _GLOBAL_OFFSET_TABLE_
0000000000400478 R _IO_stdin_used
                 w _ITM_deregisterTMCloneTable
                 w _ITM_registerTMCloneTable
                 w _Jv_RegisterClasses
000000000040037c T f()
0000000000401798 D NS::ns_my_num
00000000004017a8 d __CTOR_END__
00000000004017a0 d __CTOR_LIST__
00000000004017b8 d __DTOR_END__
00000000004017b0 d __DTOR_LIST__
0000000000400540 r __FRAME_END__
00000000004017c0 d __JCR_END__
00000000004017c0 d __JCR_LIST__
00000000004017c8 d __TMC_END__
00000000004017c8 d __TMC_LIST__
0000000000401980 A __bss_start
0000000000401788 D __data_start
0000000000400440 t __do_global_ctors_aux
00000000004002e0 t __do_global_dtors_aux
0000000000401790 d __dso_handle
0000000000000000 a __fini_array_end
0000000000000000 a __fini_array_start
                 w __gmon_start__
0000000000000000 a __init_array_end
0000000000000000 a __init_array_start
00000000004003a0 T __libc_csu_fini
00000000004003b0 T __libc_csu_init
                 U __libc_start_main
0000000000000000 a __preinit_array_end
0000000000000000 a __preinit_array_start
0000000000401980 A _edata
0000000000401994 A _end
0000000000400494 T _fini
000000000040047c T _init
0000000000400220 T _start
000000000040024c t call_gmon_start
0000000000401980 b completed.6118
0000000000401788 W data_start
0000000000400270 t deregister_tm_clones
0000000000401988 b dtor_idx.6120
0000000000401994 A end
0000000000400350 t frame_dummy
0000000000401990 B g_my_num
0000000000400390 T main
00000000004002a0 t register_tm_clones

Notes:

  • our functions f() and main() are type T (which stands for "TEXT" - used for read-only non-zero memory content whether it's actually text or other data or executable code),
  • g_my_num is B being a global with implicitly zero-ed out memory, while
  • NS::ns_my_num is D as the executable has to explicitly provide the value 2 to occupy that memory.

The man/info-page for nm documents these things further....

2 of 7
13

The -g flag tells the compiler to generate debugging information. It has no impact on whether or not a core file will be generated. On most unix-like systems, that can be setup using the ulimit command.

🌐
GNU
gcc.gnu.org › onlinedocs › gcc › Debugging-Options.html
Debugging Options (Using the GNU Compiler Collection (GCC))
Instead use an additional -glevel option to change the debug level for DWARF. ... By default, no debug information is produced for symbols that are not actually used. Use this option if you want debug information for all symbols. ... Instead of emitting debugging information for a C++ class in only one object file, emit it in all object files using the class. This option should be used only with debuggers that are unable to handle the way GCC normally emits debugging information for classes because using this option increases the size of debugging information by as much as a factor of two.
🌐
GNU
gcc.gnu.org › onlinedocs › gccint
Top (GNU Compiler Collection (GCC) Internals)
This manual documents the internals of the GNU compilers, including how to port them to new targets and some information about how to write front ends for new languages. It corresponds to the compilers (GCC) version 16.0.1. The use of the GNU compilers is documented in a separate manual.
🌐
Glendale Community College
glendale.edu › students › return-campus-students
GET STARTED AT GCC
Glendale Community College • 1500 North Verdugo Road Glendale, California 91208 • 818-240-1000 • Maps
🌐
Gusd
clarkhs.gusd.net › 14925_3
Anderson W. Clark Magnet High School - GCC Dual Enrollment and Jump Start
Dual Enrollment courses are Glendale Community College courses, that are typically taught on the high school campuses*, and allow high school students to earn both college credit and high school credit for free.
🌐
World Economic Forum
weforum.org › stories › 2026 › 02 › data-ai-energy-the-gcc-global-alliances
New GCC partnerships and investments are powering innovation | World Economic Forum
1 week ago - Major powers are now engaging a broader set of partners, such as the Gulf Cooperation Council (GCC) countries, which are undergoing their own profound economic and technological transformation.
🌐
SUNY
explore.suny.edu › courses
Online Degrees and Courses from the State University of New York
Search thousands of online courses at SUNY. Find a course by semester, level, school, and start date
🌐
Gcc
ir.gcc.com › en
GCC, RI - Inicio
GCC announced the acquisition of three companies and their aggregates, asphalt, and ready-mix concrete operations in El Paso, Texas.