Semaphores macro error

Leon Pollak leonp at plris.com
Wed Apr 11 16:28:26 UTC 2007


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.

-- 
Leon 



More information about the users mailing list