Semaphores macro error
Joel Sherrill
joel.sherrill at oarcorp.com
Wed Apr 11 17:29:34 UTC 2007
Leon Pollak wrote:
> On Wednesday 11 April 2007, D. Peter Siddons wrote:
>
>> Isn't this message issued by gdb itself? i.e. by the host, not the
>> target? As a result of the 'printf "%s", "No waiting threads"' command?
>> Pete.
>>
> Yes, it looks so. But I do not understand how it can cause such an error.
>
>
Does changing it to
printf "No waiting threads"
without the formatting string help?
It is very weird.
--joel
>> Leon Pollak wrote:
>>
>>> On Wednesday 11 April 2007, you wrote:
>>>
>>>> You can try the ugly hack of commenting out lines or printing until you
>>>> figure out what
>>>> is blowing up. I have no other idea how to debug these scripts. That's
>>>> how I did it when I wrote them.
>>>>
>>> Joel, I do not see any sense in the results I have. Please, can you help
>>> to interpreter them?
>>>
>>> I added prints as following (mine are with "=X=\n":
>>>
>>> define rtems_helper_score_threadq
>>> set $tq = $arg0
>>> set $THREAD_QUEUE_DISCIPLINE_FIFO = 0
>>> set $THREAD_QUEUE_DISCIPLINE_PRIORITY = 1
>>>
>>> if $tq->discipline == $THREAD_QUEUE_DISCIPLINE_FIFO
>>> printf " FIFO - "
>>> set $limit = 1
>>> end
>>>
>>> if $tq->discipline == $THREAD_QUEUE_DISCIPLINE_PRIORITY
>>> printf " PRIO - "
>>> set $limit = 3
>>> end
>>>
>>> # now walk them
>>> set $count = 0
>>> set $pri_index = 0
>>> set $queues = &$tq->Queues
>>> printf "=2=\n"
>>> while $pri_index < $limit
>>> set $chain = &$queues.Priority[$pri_index]
>>> set $ptail = &$chain->permanent_null
>>> printf "=3=\n"
>>> set $next = $chain->first
>>> while $next != $ptail
>>> printf "=4=\n"
>>> set $t = (Thread_Control_struct *)$next
>>> printf "0x%08x@%d ", $t->Object.id, $t->current_priority
>>> set $next = $next->next
>>> set $count = $count + 1
>>> end
>>> printf "=5=\n"
>>> set $pri_index = $pri_index + 1
>>> end
>>> printf "=6=\n"
>>> if $count == 0
>>> printf "=7=\n"
>>> printf "%s", "No waiting threads"
>>> end
>>> printf "=8=\n"
>>> end
>>> # Internal Helper Do Not Document
>>>
>>> ========================================================================
>>>
>>>
>>> And the result was:
>>> =====================================================================
>>> # | Name | ID | Information
>>> ---+------+----------+-----------------------------------------------
>>> 1 | LBIO | 1a010001 | Mutex ###
>>> INHT UNL=1=
>>> PRIO - =2=
>>> =3=
>>> =5=
>>> =3=
>>> =5=
>>> =3=
>>> =5=
>>> =6=
>>> =7=
>>> No memory available to program: call to malloc failed
>>>
>>>
>>> I do not understand this.
>>>
>
>
>
>
More information about the users
mailing list