Jiaqing Du wrote:
> 2009/12/14 Jason Wessel <[email protected]>:
>   
>> Jiaqing Du wrote:
>>     
>>> 2009/12/14 Jason Wessel <[email protected]>:
>>>
>>>       
>>>> Jiaqing Du wrote:
>>>>
>>>>         
>>>>> Hi List,
>>>>>
>>>>> I am trying to use kgdb to debug some kernel modules (mainly for
>>>>> oprofile and kvm). I had some weird problems. For example, break
>>>>> points do not work and the target kernel hangs on a breakpoint to a
>>>>> interrupt handler. Then I compiled the kernel with kgdbts. At least
>>>>> for stable release of 2.6.31.7, it did not pass the testing (with
>>>>> kgdbts=V2). I'm wondering if every stable release really passes the
>>>>> kgdbts testing? Or I'm doing something wrong?
>>>>>
>>>>>
>>>>>
>>>>>           
>>>> There was some instability in kgdb with respect to the x86 architecture
>>>> and single stepping on a multi-cpu system.   These fixes were merged to
>>>> the 2.6.33 development stream last week.   Of course in the 2.6.33
>>>> kernel the HW breakpoints are presently broken.
>>>>
>>>> I had not yet made a set of patches for the 2.6.32 kernel, but the
>>>> 2.6.33 patch set would certainly apply cleanly.
>>>>
>>>> If you are using kvm, I would recommend not using kgdb, and instead
>>>> using the kvm backend debugger.
>>>>
>>>>         
>>> What is the kvm backend debugger? After searching KVM mailing list, I
>>> could not find anything.
>>>
>>>
>>>       
>> Please look up in the documentation for kvm's user space.
>>
>> -S              freeze CPU at startup (use 'c' to start execution)
>> -gdb dev        wait for gdb connection on 'dev'
>> -s              shorthand for -gdb tcp::1234
>>
>> That creates a gdb serial communications channel between the kvm
>> instance and a debugger, not unlike using kgdb.
>>
>> Jason.
>>
>>     
>
> Actually I plan to use kgdb to debug the KVM kernel module, not the
> guest running inside it. I want to check under which point an NMI
> happens. Do you think kgdb can help me in this case? Which branch or
> tag of linux-2.6-kgdb.git should I use?
>   

I am not sure kgdb is going to give you a whole lot of mileage here. 
You cannot really debug an NMI if you are using something period such as
the apic NMI timer, as it will fire again by the time you get around to
debugging it.   Kgdb has some "special" logic for dealing with the
timers while it tries to keep the system paused.

I have usually resorted to storing the information I was interested in
along with a time stamp in a global array with a counter, and then using
kgdb to read what was going on during the time period of interest.

Jason.

------------------------------------------------------------------------------
Return on Information:
Google Enterprise Search pays you back
Get the facts.
http://p.sf.net/sfu/google-dev2dev
_______________________________________________
Kgdb-bugreport mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/kgdb-bugreport

Reply via email to