Debuggin info for unused sections

Kaushik, Praveen_Kumar Praveen_Kumar.Kaushi@atmel.com
Wed Jan 4 06:48:00 GMT 2012


Hi,
   While using -gc-sections to remove unused sections, the section is removed but the debug info in not removed.

In, 

a.c:
int main()
{
  Return 0;
}
Int fun ()
{
  Return 0;
}

gcc -g3 -ffunction-sections a.c
readelf -wL a.out 

gives:

Line Number Statements:
  Extended opcode 2: set Address to 0x400448
  Special opcode 6: advance Address by 0 to 0x400448 and Line by 1 to 2
  Special opcode 62: advance Address by 4 to 0x40044c and Line by 1 to 3
  Special opcode 76: advance Address by 5 to 0x400451 and Line by 1 to 4
  Advance PC by 2 to 0x400453
  Extended opcode 1: End of Sequence

  Extended opcode 2: set Address to 0x400453
  Special opcode 11: advance Address by 0 to 0x400453 and Line by 6 to 7
  Special opcode 62: advance Address by 4 to 0x400457 and Line by 1 to 8
  Special opcode 76: advance Address by 5 to 0x40045c and Line by 1 to 9
  Advance PC by 2 to 0x40045e
  Extended opcode 1: End of Sequence


While,
gcc -g3 -ffunction-sections -Wl,-gc-sections a.c
readelf -wL a.out
gives 

Line Number Statements:
  Extended opcode 2: set Address to 0x4003f6
  Special opcode 6: advance Address by 0 to 0x4003f6 and Line by 1 to 2
  Special opcode 62: advance Address by 4 to 0x4003fa and Line by 1 to 3
  Special opcode 76: advance Address by 5 to 0x4003ff and Line by 1 to 4
  Advance PC by 2 to 0x400401
  Extended opcode 1: End of Sequence

  Extended opcode 2: set Address to 0x0
  Special opcode 11: advance Address by 0 to 0x0 and Line by 6 to 7
  Special opcode 62: advance Address by 4 to 0x4 and Line by 1 to 8
  Special opcode 76: advance Address by 5 to 0x9 and Line by 1 to 9
  Advance PC by 2 to 0xb
  Extended opcode 1: End of Sequence


Is this expected? Can we completely remove the debug info for unused section?

Thanks,
Praveen Kaushik



More information about the Binutils mailing list