View this PageEdit this PageUploads to this PageVersions of this PageHomeRecent ChangesSearchHelp Guide

adb cheat sheet

Uso simple: obtener donde se ha caido un programa



% adb nombreprograma nombrecore
$c
$q


Comandos generales:


$cstack traceback
:r run program
:ccontinue program after breakpoint
blah:b set breakpoint at symbolic address blah or
123456:bset breakpoint at address 123456
:esingle-step, jumping over functions
:ssingle-step, jumping _into_ functions
$rprint names & contents of CPU registers
$qquit

Para ver el contenido de variables (p.ej. del backtrace):


tipocomandoejemploresultado
puntero<address>/Xpanicstr/Xpanicstr: 0xf015f7a8
cadena<address>/s0xf015f7a8/s0xf015f7a8: zero
char<address>/c0xf015f7a8/c0xf015f7a8: z
byte (hex)<address>/B0xf015f7a8/B0xf015f7a8: 7a
short (hex)<address>/x0xf015f7a8/x0xf015f7a8: 657a
long<address>/Xpanicstr/Xpanicstr: 0xf015f7a8
date (4byte-since epoch)<address>/Y0x804ca41/Y0x804ca41: 2008 Oct 23 06:41:11


Para otros tipos, ver "Panic! UNIX System crash dump analysis", capítulo 8 (en la edición de SICO, página 68).

Para hacer un backtrace de un programa en curso (p.ej.bloqueado)



% adb myprogram
0t<insert pid here>:A
$c
:R
$q


Para ver un crash (un panic) de Solaris


Si en las trazas del /var/adm/messages tienes cosas como:
Aug 24 04:31:17 pzaespana genunix: [ID 454863 kern.info] dump on /dev/dsk/c0d0s1 size 512 MB

Es que has tenido un panic, y como esta máquina se llama pzaespana, estará en:
 /var/crash/pzaespana

Copias los dos .gz (unix.n.gz y vmcore.n.gz) al /tmp, los descomprimes con un gzip -d unix.n.gz y haces los adb que se dicen más abajo:
# cd /var/crash/*
# cp  unix.*.gz vmcore.*.gz /tmp
# cd /tmp
# gzip -d unix.*.gz vmcore.*.gz
# adb -k unix.* vmcore.*
$c
$q

(hasta solaris 8, se supone que en solaris 9 se usa el mdb en vez del adb)



% adb -k vmunix.0 vmcore.0
$c
$q


(sacado de aquí).

Para obtener más información del panic si $c está en blanco (usando el adb en solaris 9, esto parece que funciona)


Si el $c no da información, se puede pedir el msgbuf:


% adb -k vmunix.0 vmcore.0
$< msgbuf
$q