Re: CONFIG_DEBUG_INFO versus not

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On Fri, Jul 31, 2009 at 2:48 AM, Robert P. J. Day <rpjday@xxxxxxxxxxxxxx> wrote:

 as a followup to my earlier post, here's something i want to
clarify.  there's a difference in how much symbol-based debugging you
can do based on whether you configured your running kernel with
CONFIG_DEBUG_INFO or not, so i wanted to test what the differences
 
Can someone tell me where to mark CONFIG_DEBUG_INFO=y ?
 

were between two kernels, one configured with, one without.

 after i built both kernels, you can see the predictable difference
in size (ignore vmlinux.o, of course):

$ ls -l vmlinux*
-rwxrwxr-x. 1 rpjday rpjday  15649485 2009-07-30 16:51 vmlinux
-rwxrwxr-x. 1 rpjday rpjday 116565773 2009-07-30 16:34 vmlinux.debug.info
-rw-rw-r--. 1 rpjday rpjday  15891639 2009-07-30 16:51 vmlinux.o
$

 my basic question with the above is whether, apart from the
additional debug info embedded in the kernel image, were the two
kernels *exactly* the same -- that is, would they have the same
sections, with the same sizes, at the same offsets, so i could bounce
from one to the other with "gdb" to test the differences and not have
to keep rebooting?

 as a quick test, i ran

$ objdump --section-headers <kernel image name>

on both, and the only difference was the additional debug sections at
the end of the debug version:

2c2
< vmlinux:     file format elf64-x86-64
---
> vmlinux.debug.info:     file format elf64-x86-64
89a90,107
>  42 .debug_aranges 0001b040  0000000000000000  0000000000000000  00cace00  2**4
>                   CONTENTS, READONLY, DEBUGGING
>  43 .debug_pubnames 00051010  0000000000000000  0000000000000000  00cc7e40  2**0
>                   CONTENTS, READONLY, DEBUGGING
>  44 .debug_info   04c22970  0000000000000000  0000000000000000  00d18e50  2**0
>                   CONTENTS, READONLY, DEBUGGING
>  45 .debug_abbrev 001e0d1e  0000000000000000  0000000000000000  0593b7c0  2**0
>                   CONTENTS, READONLY, DEBUGGING
>  46 .debug_line   0044f12b  0000000000000000  0000000000000000  05b1c4de  2**0
>                   CONTENTS, READONLY, DEBUGGING
>  47 .debug_frame  0013ed00  0000000000000000  0000000000000000  05f6b610  2**3
>                   CONTENTS, READONLY, DEBUGGING
>  48 .debug_str    0018f17c  0000000000000000  0000000000000000  060aa310  2**0
>                   CONTENTS, READONLY, DEBUGGING
>  49 .debug_loc    0090b310  0000000000000000  0000000000000000  0623948c  2**0
>                   CONTENTS, READONLY, DEBUGGING
>  50 .debug_ranges 001a5f10  0000000000000000  0000000000000000  06b447a0  2**4
>                   CONTENTS, READONLY, DEBUGGING

 the fact that all of the prior sections were (apparently) identical
suggests that i can, in fact, swap one kernel image with the other for
"gdb" and everything should continue to work, with the exception of
having symbols or not.  is that a safe assumption?  it *seems* to be,
i'm just wondering if anyone knows for sure.

rday

p.s.  the above suggests that, if those debug sections are the only
difference, rather than build both versions of the kernel, i could
build the DEBUG_INFO version, save that, then strip a copy of it of
all of those debug sections to get the same effect, yes?

--

========================================================================
Robert P. J. Day                               Waterloo, Ontario, CANADA

       Linux Consulting, Training and Annoying Kernel Pedantry.

Web page:                                          http://crashcourse.ca
Twitter:                                       http://twitter.com/rpjday
"Kernel Newbie Corner" column @ linux.com:          http://cli.gs/WG6WYX
========================================================================

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ




--
Regards,
~Sid~


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux