2012/4/2 Zhihua Che <[email protected]>:
> 在 2012年4月2日 上午12:49,Randy Dunlap <[email protected]> 写道:
>> On 04/01/2012 09:31 AM, Zhihua Che wrote:
>>
>>> Hi, everyone
>>>
>>> I'm debugging linux kernel using kgdb/qemu, but I find that the
>>> execution order didn't math the program order usually. I guess it was
>>> because the compiling optimization. So I decided to remove -O options
>>> in Makefiles.
>>> First I removed -Ox in variables HOSTCFLAGS/HOSTCXXFLAGS in
>>> <src_root_dir>/Makefile around line 248 and -Ox in variable
>>> KBUILD_CFLAGS in <src_root_dir>/arch/x86/boot/Makefile around line 55.
>>> But it didn't work, the step execution still didn't follow the program
>>> order. Then I found I missed -Ox in KBUILD_CFLAGS in
>>> <src_root_dir>/Makefile around line 562, so I removed them, but this
>>> time, the compiling failed, complaining
>>> rcupdate.h:917:2: error: size of unnamed array is negative
>>> And finally, after grep, I find there are a load of -O2 option are
>>> assigned in a load of Makefiles. So, How could I disable -O
>>> optimization for debugging?
>>>
>>> Thanks for any tips
>>> --
>>
>>
>> You could try the new CONFIG_READABLE_ASM patch:
>> http://marc.info/?l=linux-kernel&m=133296079716268&w=2
>>
>>
>> --
>> ~Randy
>
> Hi,
> I tried your patch, and it seemed not to work:-(. It still didn't
> follow the program order
Hi Zhihua Che,
Have you found a solution for this? I'm facing the same problem with KGDB..
--
Renato Westphal
* Renato Westphal | 2012-05-05 23:00:48 [-0300]:
>>> You could try the new CONFIG_READABLE_ASM patch:
>>> ?http://marc.info/?l=linux-kernel&m=133296079716268&w=2
Maybe remove "-Os" on a global basis is not wanted nor required. Maybe a per
directory, per file or per function basis may superior!
make DISABLE_OPTIMIZATION=net/sched/sch_api.c
But still all core constructs defined in top level header files must be
compatible for directory/file basis to be build with no optimization at all.
One way to un-optmize fine-granular is GCC's optmize pragma [1].
Hagen
PS: such a functionality may be convenient for perf probe too! (to hook into
probepoints which are currently optimized out)
[1] http://gcc.gnu.org/onlinedocs/gcc/Function-Specific-Option-Pragmas.html