GDB macros
Joel Sherrill
joel.sherrill at oarcorp.com
Tue Sep 12 13:18:49 UTC 2006
Luca Germano wrote:
> I'm using Leon3 CPU.
> If I want to debug the macros how can I do?
The only way to debug these macros I know of it to put debug prints.
I suspect you are not getting past here:
define rtems_helper_show_task
rtems_helper_task_header
set $pt = (Thread_Control *)$arg0.local_table[$arg1]
rtems_helper_task_dump $arg1 $pt 1
end
put a print in to see if you get past setting $pt.
If you do, then drop prints into rtems_helper_task_dump until you narrow
it down.
The macro expansion can be weird to debug at times. From what I can
tell, you can't
do something like ${VAR} like in shell. But my tests make it look like
you are
allowed a space after the variable so something like this may work:
define j1
set $x = _Thread_Executing
printf "%x\n", $x->Object.id
printf "%x\n", $x ->Object.id
end
Just a guess.
> Thanks
>
>> From: Joel Sherrill <joel.sherrill at oarcorp.com>
>> To: Luca Germano <lucagermano at hotmail.com>
>> CC: rtems-users at rtems.com
>> Subject: Re: GDB macros
>> Date: Tue, 12 Sep 2006 06:28:48 -0500
>>
>> Luca Germano wrote:
>>> Thanks for the help.
>>> I try to use the rtems_classic_tasks macro but gdb give me the
>>> following reply
>>>
>> The only way I know to debug these macros is careful insertion of
>> debug prints.
>>
>> What CPU are you on? AFAIK backtrace is the only routine which requires
>> CPU specific tinkering.
>>
>>> =====================================================================
>>> Attempt to extract a component of a value that is not a structure.
>>> # | Name | ID | Pri | Ticks | State
>>> ---+------+----------+-----+----------+------------------------------
>>>
>>> How can I solve this problem?
>>>
>>> Best regards
>>> Luca Germano
>>>
>>>
>>
>
>
More information about the users
mailing list