WEB开发网
开发学院操作系统Linux/Unix AIX 下的 core dump 分析入门 阅读

AIX 下的 core dump 分析入门

 2008-11-10 08:27:41 来源:WEB开发网   
核心提示: 这个例子比较简单,从最后汇编指令“stw r3,0x0(r4)”就可以简单的看到程序 core dump 是因为向 0 地址(0+r4)存入 18(r3 寄存器值)造成,AIX 下的 core dump 分析入门(10),查看多线程相关信息 如果以下环境变量采用默认

这个例子比较简单,从最后汇编指令“stw r3,0x0(r4)”就可以简单的看到程序 core dump 是因为向 0 地址(0+r4)存入 18(r3 寄存器值)造成。

查看多线程相关信息

如果以下环境变量采用默认的 OFF 值,则系统会完全禁止适当的调试列表,这意味着 dbx 命令将显示不出任何对象:

AIXTHREAD_MUTEX_DEBUG

AIXTHREAD_COND_DEBUG

AIXTHREAD_RWLOCK_DEBUG

可以使用

export AIXTHREAD_MUTEX_DEBUG=ON

打开 AIXTHREAD_MUTEX_DEBUG。

查看线程信息

(dbx) print $t1 // 打印 t1 线程的基本信息

(dbx) attribute

(dbx) condition

(dbx) mutex

(dbx) rwlock

(dbx) thread

例如:

(thread_id = 1, state_u = 4, priority = 60, policy = other, attributes = 0x20001078)

切换当前线程(默认当前线程为收到 core 触发信号所在线程)

(dbx) thread current [tid]

例如(> 表明 core dump 时的当前线程):

(dbx)thread
thread state-k wchan state-u k-tid mode held scope function
$t1 wait 0x31bbb558 running 10321 k no pro _ptrgl
$t2 wait 0x311fb958 running 6275 k no pro _ptrgl
>$t3 run running 6985 k no pro _p_nsleep
$t4 wait 0x31bbbb18 running 6571 k no pro _ptrgl
$t5 wait 0x311fb9d8 running 7999 k no pro _ptrgl
$t6 wait 0x31bf8f98 running 8257 k no pro _ptrgl
$t7 wait 0x311fba18 running 8515 k no pro _ptrgl
$t8 wait 0x311fb7d8 running 8773 k no pro _ptrgl
$t9 wait 0x311fbb18 running 9031 k no pro _ptrgl
$t10 wait 0x311fb898 running 9547 k no pro _ptrgl
$t11 wait 0x311fb818 running 9805 k no pro _ptrgl
$t12 wait 0x311fba58 running 10063 k no pro _ptrgl
$t13 wait 0x311fb8d8 running 10579 k no pro _ptrgl
(dbx) thread current 3
(dbx) where
_p_nsleep(??, ??) at 0xd005f740
raise.nsleep(??, ??) at 0xd022de3c
sleep(??) at 0xd0260344
helper(??) at 0x100005ac
(dbx) thread current 4
warning: Thread is in kernel mode, not all registers can be accessed.
(dbx) where
ptrgl._ptrgl() at 0xd020e470
raise.nsleep(??, ??) at 0xd022de3c
raise.nsleep(??, ??) at 0xd022de3c
sleep(??) at 0xd0260344
helper(??) at 0x100005ac
(dbx)

上一页  5 6 7 8 9 10 

Tags:AIX core dump

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接