Annotation of XNU/bsd/.gdbinit, revision 1.1.1.1

1.1       root        1: define ststack
                      2:         set $f=(long*)*$r1
                      3:        p/x $f
                      4:        x/i *($f+2)-4
                      5: end
                      6: 
                      7: define tstack
                      8:     if (*(long*)$f) != 0
                      9:         set $f=*(long*)$f
                     10:         p/x $f
                     11:         x/i *($f+8)-4
                     12:     else
                     13:         echo end of stack\n
                     14:     end
                     15: end
                     16: 
                     17: define pcb
                     18:     p *(pcb_t)$arg0
                     19: end
                     20: 
                     21: define pth
                     22:     p *(thread_t)$arg0
                     23: end
                     24: 
                     25: define pta
                     26:     p *(task_t)$arg0
                     27: end
                     28: 
                     29: define dcz
                     30:     p *(zone_t)$arg0
                     31: end
                     32: 
                     33: define dmapent
                     34:     echo "  map_entry"
                     35:     p $arg0
                     36:     echo "    start "
                     37:     p ((vm_map_entry_t)$arg0)->links.start
                     38:     echo "    end "
                     39:     p ((vm_map_entry_t)$arg0)->links.end
                     40:     if ( $arg0->is_a_map != 0)
                     41:         echo "    object is a map"\n
                     42:         echo "    share"
                     43:        p $arg0->object.share_map
                     44:         echo "    offset"
                     45:        p $arg0->offset
                     46:     end
                     47:     if ( $arg0->is_shared != 0)
                     48:         echo "    region is shared"\n
                     49:     end
                     50:     if ( $arg0->is_sub_map != 0)
                     51:         echo "    object is a sub map"\n
                     52:     end
                     53:     if ( $arg0->copy_on_write != 0)
                     54:         echo "    data is copy on write"\n
                     55:     end
                     56:     if ( $arg0->in_transition != 0)
                     57:         echo "    Entry is being changed"\n
                     58:     end
                     59:     if ( $arg0->needs_wakeup != 0)
                     60:         echo "    Waiters on in_transition"\n
                     61:     end
                     62:     if ( $arg0->needs_copy != 0)
                     63:         echo "    object needs to be copied"\n
                     64:     end
                     65:     echo "    protection "
                     66:     p ((vm_map_entry_t)$arg0)->protection
                     67:     echo "    max protection "
                     68:     p ((vm_map_entry_t)$arg0)->max_protection
                     69:     echo "    inheritance "
                     70:     p ((vm_map_entry_t)$arg0)->inheritance
                     71:     echo "    wired count "
                     72:     p ((vm_map_entry_t)$arg0)->wired_count
                     73:     echo "    user_wired_count "
                     74:     p ((vm_map_entry_t)$arg0)->user_wired_count
                     75: end
                     76: 
                     77: define dmap
                     78:     set $vmmapptr=$arg0
                     79:     set $iter=0
                     80:     if (((vm_map_t)$vmmapptr)->is_main_map != 0)
                     81:        echo "    this is a main map"\n
                     82:     end
                     83:     echo "    start "
                     84:     p ((vm_map_t)$vmmapptr)->hdr.links.start
                     85:     echo "    end "
                     86:     p ((vm_map_t)$vmmapptr)->hdr.links.end
                     87:     if ((vm_map_t)$vmmapptr->entries_pageable != 0)
                     88:         echo "    map entries are pageable"\n
                     89:     else 
                     90:         echo "    map entries are NOT pageable"\n
                     91:     end
                     92:     echo "    size "
                     93:     p ((vm_map_t)$vmmapptr)->size
                     94:     echo "    pmap "
                     95:     p ((vm_map_t)$vmmapptr)->pmap
                     96:     set $mapentptr=$vmmapptr->hdr.links.next
                     97:     echo "    number of map entries "
                     98:     p ((vm_map_t)$vmmapptr)->hdr.nentries
                     99:     while ($iter < ((vm_map_t)$arg0)->hdr.nentries)
                    100:        echo \n
                    101:        echo "  entry "
                    102:        p $iter
                    103:        dmapent $mapentptr
                    104:        set $mapentptr=((vm_map_entry_t)$mapentptr)->links.next
                    105:        set $iter=$iter+1
                    106:     end
                    107: 
                    108: end
                    109: 
                    110: define dzleak
                    111:     if (((zone_t)$arg0)->zone_name != 0)
                    112:        p (char *)(((zone_t)($arg0))->zone_name)
                    113:     end
                    114:     echo "    num elem used "
                    115:     p/x $arg0->count
                    116:     echo "    curr zone size "
                    117:     p/x $arg0->cur_size
                    118:     echo "    max zone size "
                    119:     p/x $arg0->max_size
                    120:     if ($arg0->free_elements !=0)
                    121:         echo "    next free element"
                    122:         p/x $arg0->free_elements
                    123:     end
                    124:     if ( $arg0->doing_alloc != 0)
                    125:         echo "    doing allocation"
                    126:         p/x $arg0->doing_alloc
                    127:     end
                    128:     echo "    allocation size"
                    129:     p/x $arg0->alloc_size
                    130:     if ( $arg0->pageable != 0)
                    131:         echo "    zone is pageable\n"
                    132:     end
                    133:     if ( $arg0->sleepable != 0)
                    134:         echo "    zone is sleepable\n"
                    135:     end
                    136:     if ( $arg0->exhaustible != 0)
                    137:         echo "    zone is exhaustible\n"
                    138:     end
                    139:     if ( $arg0->expandable != 0)
                    140:         echo "    zone is expandable\n"
                    141:     end
                    142:     set $iter=0
                    143:     while ($iter < $arg0->num_alloc_callers)
                    144:        p/x *(struct caller_s *)$arg0->alloc_callers[$iter]
                    145:        set $iter=$iter+1
                    146:     end
                    147:     echo "    number of alloc callers "
                    148:     p/x $arg0->num_alloc_callers
                    149:     set $iter=0
                    150:     while ($iter < $arg0->num_free_callers)
                    151:        p/x *(struct caller_s *)$arg0->free_callers[$iter]
                    152:        set $iter=$iter+1
                    153:     end
                    154:     echo "    number of free callers "
                    155:     p/x $arg0->num_free_callers
                    156: end
                    157: 
                    158: define dz
                    159:     if (((zone_t)$arg0)->zone_name != 0)
                    160:        p (char *)(((zone_t)($arg0))->zone_name)
                    161:     end
                    162:     echo "    num elem used "
                    163:     p/x $arg0->count
                    164:     echo "    curr zone size "
                    165:     p/x $arg0->cur_size
                    166:     echo "    max zone size "
                    167:     p/x $arg0->max_size
                    168:     if ($arg0->free_elements !=0)
                    169:         echo "    next free element"
                    170:         p/x $arg0->free_elements
                    171:     end
                    172:     if ( $arg0->doing_alloc != 0)
                    173:         echo "    doing allocation"
                    174:         p/x $arg0->doing_alloc
                    175:     end
                    176:     echo "    allocation size"
                    177:     p/x $arg0->alloc_size
                    178:     if ( $arg0->pageable != 0)
                    179:         echo "    zone is pageable\n"
                    180:     end
                    181:     if ( $arg0->sleepable != 0)
                    182:         echo "    zone is sleepable\n"
                    183:     end
                    184:     if ( $arg0->exhaustible != 0)
                    185:         echo "    zone is exhaustible\n"
                    186:     end
                    187:     if ( $arg0->expandable != 0)
                    188:         echo "    zone is expandable\n"
                    189:     end
                    190: end
                    191: 
                    192: define daz
                    193:     set $numtasks=default_pset->task_count
                    194:     set $iter=0
                    195:     set $zoneptr=zone_zone
                    196:     while ($zoneptr != 0)
                    197:        echo \n
                    198:        dz $zoneptr
                    199:        set $zoneptr=((zone_t)($zoneptr))->next_zone
                    200:        set $iter=$iter+1
                    201:     end
                    202:     echo number of zones = 
                    203:     p $iter
                    204: end
                    205: 
                    206: define dleakaz
                    207:     set $numtasks=default_pset->task_count
                    208:     set $iter=0
                    209:     set $zoneptr=zone_zone
                    210:     while ($zoneptr != 0)
                    211:     echo \n
                    212:     dzleak $zoneptr
                    213:     set $zoneptr=((zone_t)($zoneptr))->next_zone
                    214:     set $iter=$iter+1
                    215:     end
                    216:     echo number of zones =
                    217:     p $iter
                    218: end
                    219: 
                    220: define tsaved
                    221:        p/x *(struct ppc_saved_state *)($f+0x90)
                    222: end
                    223: 
                    224: define sustack
                    225:        set $u=(long*)((((int)$arg0) & 0x0FFFFFFF) + 0x60000000)
                    226:        p/x $u
                    227:        p/x *($u+2)-4
                    228: end
                    229: 
                    230: define ustack
                    231:        if (*(long*)$u) != 0
                    232:                set $u=(long*)((((int)(*(long*)$u)) & 0x0FFFFFFF) + 0x60000000)
                    233:                p/x $u
                    234:                if (((int)(*($u+2)-4)) & 0xF0000000) == 0
                    235:                        x/i ((((int)(*($u+2)-4)) & 0x0FFFFFFF) + 0x20000000)
                    236:                else
                    237:                        p/x *($u+2)-4
                    238:                end
                    239:        else
                    240:                echo end of user stack\n
                    241:        end
                    242: end
                    243: 
                    244: define tasks
                    245:     set $numtasks=default_pset->task_count
                    246:     set $iter=0
                    247:     set $taskptr=default_pset->tasks.next
                    248:     while ($iter < $numtasks)
                    249:        if ((((struct task *)($taskptr))->proc) != 0)
                    250:            p (char *)(((struct task *)($taskptr))->proc->p_comm)
                    251:                p ((struct task *)($taskptr))->map
                    252:        end
                    253:        set $taskptr=((struct task *)($taskptr))->pset_tasks.next
                    254:        set $iter=$iter+1
                    255:     end
                    256: end
                    257: 
                    258: define threads
                    259:     set $numthreads=default_pset->thread_count
                    260:     set $iter=0
                    261:     set $threadptr=default_pset->threads.next
                    262:     while ($iter < $numthreads)
                    263:         if ((((struct thread *)($threadptr))->task->proc) != 0) 
                    264:                p (char *)(((struct thread *)($threadptr))->task->proc->p_comm)
                    265:                p $threadptr
                    266:            end
                    267:        set $threadptr=((struct thread *)($threadptr))->pset_threads.next
                    268:        set $iter=$iter+1
                    269:     end
                    270: end
                    271: 
                    272: define kstackthreads
                    273:     set $numthreads=default_pset->thread_count
                    274:     set $iter=0
                    275:     set $threadptr=default_pset->threads.next
                    276:     while ($iter < $numthreads)
                    277:        if ((((struct thread *)($threadptr))->kernel_stack) != 0)
                    278:            if ((((struct thread *)($threadptr))->task->proc) != 0)
                    279:                p (char *)(((struct thread *)($threadptr))->task->proc->p_comm)
                    280:                p $threadptr
                    281:            end
                    282:        end
                    283:        set $threadptr=((struct thread *)($threadptr))->pset_threads.next
                    284:        set $iter=$iter+1
                    285:     end
                    286: end
                    287: 
                    288: define waitthreads
                    289:     set $numthreads=default_pset->thread_count
                    290:     set $iter=0
                    291:     set $threadptr=default_pset->threads.next
                    292:     while ($iter < $numthreads)
                    293:        if ((((struct thread *)($threadptr))->wait_event) != 0)
                    294:            p (char *)(((struct thread *)($threadptr))->task->proc->p_comm)
                    295:            p $threadptr
                    296:                p ((struct thread *)($threadptr))->wait_event
                    297:                p ((struct thread *)($threadptr))->wait_mesg
                    298:        end
                    299:        set $threadptr=((struct thread *)($threadptr))->pset_threads.next
                    300:        set $iter=$iter+1
                    301:     end
                    302: end
                    303: 
                    304: define tomkstack
                    305:     if (( ((thread_t)$arg0)->kernel_stack) == 0)
                    306:        echo "no kernel stack"
                    307:     else
                    308:        if $arg0 == cpu_data->active_thread
                    309:            ststack
                    310:        else
                    311:            p/x ((struct ppc_kernel_state *)((((thread_t)$arg0)->kernel_stack)+0x3f94))->r1
                    312:            x/i ((struct ppc_kernel_state *)((((thread_t)$arg0)->kernel_stack)+0x3f94))->lr
                    313:        end
                    314:     end
                    315: end
                    316: 
                    317: define kstack
                    318:     if (( ((thread_t)$arg0)->kernel_stack) == 0)
                    319:        echo "no kernel stack"
                    320:     else
                    321:        if $arg0 == cpu_data->active_thread
                    322:            ststack
                    323:        else
                    324:            set $f=((struct ppc_kernel_state *)(($s->kernel_stack)+0x3f94))->r1
                    325:            p/x $f
                    326:            x/i ((struct ppc_kernel_state *)(($s->kernel_stack)+0x3f94))->lr
                    327:        end
                    328:     end
                    329: end
                    330: 
                    331: define setRegFromSaved
                    332:        set $s_pc=(long)$pc
                    333:        set $s_lr=(long)$lr
                    334:        set $s_r1=(long)$r1
                    335:        set $s_r13=(long)$r13
                    336:        set $s_r14=(long)$r14
                    337:        set $s_r15=(long)$r15
                    338:        set $s_r16=(long)$r16
                    339:        set $s_r17=(long)$r17
                    340:        set $s_r18=(long)$r18
                    341:        set $s_r19=(long)$r19
                    342:        set $s_r20=(long)$r20
                    343:        set $s_r21=(long)$r21
                    344:        set $s_r22=(long)$r22
                    345:        set $s_r23=(long)$r23
                    346:        set $s_r24=(long)$r24
                    347:        set $s_r25=(long)$r25
                    348:        set $s_r26=(long)$r26
                    349:        set $s_r27=(long)$r27
                    350:        set $s_r28=(long)$r28
                    351:        set $s_r29=(long)$r29
                    352:        set $s_r30=(long)$r30
                    353:        set $s_r31=(long)$r31
                    354:        x/i $s_pc
                    355: end
                    356: 
                    357: define printReg
                    358:        printf "pc\t0x%x\n", $s_pc
                    359:        printf "lr\t0x%x\n", $s_lr
                    360:        printf "r1\t0x%x\n", $s_r1
                    361:        printf "r13\t0x%x\n", $s_r13
                    362:        printf "r14\t0x%x\n", $s_r14
                    363:        printf "r15\t0x%x\n", $s_r15
                    364:        printf "r16\t0x%x\n", $s_r16
                    365:        printf "r17\t0x%x\n", $s_r17
                    366:        printf "r18\t0x%x\n", $s_r18
                    367:        printf "r19\t0x%x\n", $s_r19
                    368:        printf "r20\t0x%x\n", $s_r20
                    369:        printf "r21\t0x%x\n", $s_r21
                    370:        printf "r22\t0x%x\n", $s_r22
                    371:        printf "r23\t0x%x\n", $s_r23
                    372:        printf "r24\t0x%x\n", $s_r24
                    373:        printf "r25\t0x%x\n", $s_r25
                    374:        printf "r26\t0x%x\n", $s_r26
                    375:        printf "r27\t0x%x\n", $s_r27
                    376:        printf "r28\t0x%x\n", $s_r28
                    377:        printf "r29\t0x%x\n", $s_r29
                    378:        printf "r30\t0x%x\n", $s_r30
                    379:        printf "r31\t0x%x\n", $s_r31
                    380: end
                    381: 
                    382: define popReg
                    383:        if (*(long*)$s_r1) == 0
                    384:                echo end of stack\n
                    385:        else
                    386:        set $s_r1=*(long*)$s_r1
                    387:        set $s_lr=*(long*)($s_r1+8)
                    388:        set $s_t1=$s_r1
                    389:        if $arg0 != 0
                    390:                if $arg0 <= 31
                    391:                        set $s_t1=$s_t1-4
                    392:                        set $s_r31=*(long*)$s_t1
                    393:                end
                    394:                if $arg0 <= 30
                    395:                        set $s_t1=$s_t1-4
                    396:                        set $s_r30=*(long*)$s_t1
                    397:                end
                    398:                if $arg0 <= 29
                    399:                        set $s_t1=$s_t1-4
                    400:                        set $s_r29=*(long*)$s_t1
                    401:                end
                    402:                if $arg0 <= 28
                    403:                        set $s_t1=$s_t1-4
                    404:                        set $s_r28=*(long*)$s_t1
                    405:                end
                    406:                if $arg0 <= 27
                    407:                        set $s_t1=$s_t1-4
                    408:                        set $s_r27=*(long*)$s_t1
                    409:                end
                    410:                if $arg0 <= 26
                    411:                        set $s_t1=$s_t1-4
                    412:                        set $s_r26=*(long*)$s_t1
                    413:                end
                    414:                if $arg0 <= 25
                    415:                        set $s_t1=$s_t1-4
                    416:                        set $s_r25=*(long*)$s_t1
                    417:                end
                    418:                if $arg0 <= 24
                    419:                        set $s_t1=$s_t1-4
                    420:                        set $s_r24=*(long*)$s_t1
                    421:                end
                    422:                if $arg0 <= 23
                    423:                        set $s_t1=$s_t1-4
                    424:                        set $s_r23=*(long*)$s_t1
                    425:                end
                    426:                if $arg0 <= 22
                    427:                        set $s_t1=$s_t1-4
                    428:                        set $s_r22=*(long*)$s_t1
                    429:                end
                    430:                if $arg0 <= 21
                    431:                        set $s_t1=$s_t1-4
                    432:                        set $s_r21=*(long*)$s_t1
                    433:                end
                    434:                if $arg0 <= 20
                    435:                        set $s_t1=$s_t1-4
                    436:                        set $s_r20=*(long*)$s_t1
                    437:                end
                    438:                if $arg0 <= 19
                    439:                        set $s_t1=$s_t1-4
                    440:                        set $s_r19=*(long*)$s_t1
                    441:                end
                    442:                if $arg0 <= 18
                    443:                        set $s_t1=$s_t1-4
                    444:                        set $s_r18=*(long*)$s_t1
                    445:                end
                    446:                if $arg0 <= 17
                    447:                        set $s_t1=$s_t1-4
                    448:                        set $s_r17=*(long*)$s_t1
                    449:                end
                    450:                if $arg0 <= 16
                    451:                        set $s_t1=$s_t1-4
                    452:                        set $s_r16=*(long*)$s_t1
                    453:                end
                    454:        end
                    455:        set $s_pc=$s_lr-4
                    456:        x/i $s_pc
                    457:        end
                    458: end
                    459: 
                    460: define wherePC
                    461:        x/i $s_pc
                    462: end
                    463: 
                    464: define popSaved
                    465:        set $s_t1=(struct ppc_saved_state *)($s_r1+0x90)
                    466:        set $s_pc=(long)$s_t1->srr0
                    467:        set $s_lr=(long)$s_t1->lr
                    468:        set $s_r1=(long)$s_t1->r1
                    469:        set $s_r13=(long)$s_t1->r13
                    470:        set $s_r14=(long)$s_t1->r14
                    471:        set $s_r15=(long)$s_t1->r15
                    472:        set $s_r16=(long)$s_t1->r16
                    473:        set $s_r17=(long)$s_t1->r17
                    474:        set $s_r18=(long)$s_t1->r18
                    475:        set $s_r19=(long)$s_t1->r19
                    476:        set $s_r20=(long)$s_t1->r20
                    477:        set $s_r21=(long)$s_t1->r21
                    478:        set $s_r22=(long)$s_t1->r22
                    479:        set $s_r23=(long)$s_t1->r23
                    480:        set $s_r24=(long)$s_t1->r24
                    481:        set $s_r25=(long)$s_t1->r25
                    482:        set $s_r26=(long)$s_t1->r26
                    483:        set $s_r27=(long)$s_t1->r27
                    484:        set $s_r28=(long)$s_t1->r28
                    485:        set $s_r29=(long)$s_t1->r29
                    486:        set $s_r30=(long)$s_t1->r30
                    487:        set $s_r31=(long)$s_t1->r31
                    488:        x/i $s_pc
                    489: end
                    490: 
                    491: define setRegFromThread
                    492:        set $s_t1=(thread_t)$arg0
                    493:        set $s_t1=(struct ppc_kernel_state *)(($s_t1->kernel_stack)+0x3f94)
                    494:        set $s_pc=(long)$s_t1->lr
                    495:        set $s_lr=(long)$s_t1->lr
                    496:        set $s_r1=(long)$s_t1->r1
                    497:        set $s_r13=(long)$s_t1->r13[0]
                    498:        set $s_r14=(long)$s_t1->r13[1]
                    499:        set $s_r15=(long)$s_t1->r13[2]
                    500:        set $s_r16=(long)$s_t1->r13[3]
                    501:        set $s_r17=(long)$s_t1->r13[4]
                    502:        set $s_r18=(long)$s_t1->r13[5]
                    503:        set $s_r19=(long)$s_t1->r13[6]
                    504:        set $s_r20=(long)$s_t1->r13[7]
                    505:        set $s_r21=(long)$s_t1->r13[8]
                    506:        set $s_r22=(long)$s_t1->r13[9]
                    507:        set $s_r23=(long)$s_t1->r13[10]
                    508:        set $s_r24=(long)$s_t1->r13[11]
                    509:        set $s_r25=(long)$s_t1->r13[12]
                    510:        set $s_r26=(long)$s_t1->r13[13]
                    511:        set $s_r27=(long)$s_t1->r13[14]
                    512:        set $s_r28=(long)$s_t1->r13[15]
                    513:        set $s_r29=(long)$s_t1->r13[16]
                    514:        set $s_r30=(long)$s_t1->r13[17]
                    515:        set $s_r31=(long)$s_t1->r13[18]
                    516:        x/i $s_pc
                    517: end
                    518: 
                    519: define popLR
                    520:        set $s_pc=$s_lr-4
                    521:        x/i $s_pc
                    522: end

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.