dbx点滴-(1)

断断续续的看过dbx手册的一些章节,虽然大部分的内容不常用到,但是对某些特定情形的调试还是相当有用。本博的目的就是把一些个人认为有用的东西摘抄出来,方便查询。

1>

要消除库问题并用 dbx 调试 “不匹配”的核心文件,您可以执行以下操作:
1. 将 dbx 环境变量 core_lo_pathmap 设置为 on。
2. 使用 pathmap 命令告知 dbx 核心文件的正确库的位置。
3. 使用 debug 命令加载程序和核心文件。
例如,假定核心主机的根分区已通过 NFS 导出,并且可以通过 dbx 主机上的
/net/core-host/ 访问,应使用下面的命令加载 prog 程序和 prog.core 核心文件
来进行调试:
 (dbx) dbxenv core_lo_pathmap on
 (dbx) pathmap /usr /net/core-host/usr
 (dbx) pathmap /appstuff /net/core-host/appstuff
 (dbx) debug prog prog.core
如果没有导出核心主机的根分区,则必须手动复制这些库。不需要重新创建符号链接。
(例如,  您不必建立从 libc.so 到 libc.so.1 的链接,       只要确保 libc.so.1 可用。) 


注意事项
调试不匹配的核心文件时应注意:
■ pathmap 命令不能识别 “/”路径映射,因此不能使用以下命令:
  pathmap / /net/core-host
■  pathmap 命令的单参数模式不能与加载对象路径名同时使用,因此请使用二元模式
  from-path to-path。
 

■ 如果 dbx 主机使用的 Solaris 操作环境版本与核心主机相同或更新,那么调试核心文件时效果可能会更好,虽然这并不总是必要的。可能需要的系统库是:
   ■ 对于运行时链接程序: 
        /usr/lib/ld.so.1
        /usr/lib/librtld_db.so.1
        /usr/lib/64/ld.so.1
        /usr/lib/64/librtld_db.so.1
   ■ 对于线程库,取决于您所使用的 libthread 执行: 
        /usr/lib/libthread_db.so.1
        /usr/lib/64/libthread_db.so.1
        /usr/lib/lwp/libthread_db.so.1
        /usr/lib/lwp/64/libthread_db.so.1
   /usr/lib/lwp 文件仅适用于在 Solaris 8 操作环境中运行 dbx 的情况,  并且仅在您
   使用交替 libthread 库时适用。
   如果 dbx 在支持 64 位的 Solaris OS 版本上运行,则需要 xxx_db.so 库的 64 位版
   本,因为这些系统库是作为 dbx 的一部分而不是目标程序的一部分装入和使用的。
   ld.so.1 库是核心文件映像的一部分,与 libc.so 或其他任何库一样,因此需要与
   创建该核心文件的程序相匹配的 32 位 ld.so.1 库或 64 位 ld.so.1 库。
■ 如果正在查看来自某个线程程序的核心文件,并且 where 命令未显示栈,请尝试使用
   lwp 命令。例如:
  (dbx) where
  current thread: t@0
  [1] 0x0(), at 0xffffffff
  (dbx) lwps
  o>l@1 signal SIGSEGV in _sigfillset()
  (dbx) lwp l@1
  (dbx) where
  =>[1] _sigfillset(), line 2 in "lo.c"
     [2] _liblwp_init(0xff36291c, 0xff2f9740, ...
     [3] _init(0x0, 0xff3e2658, 0x1, ...
  ...
   缺少线程栈表明 thread_db.so.1 有问题,因此,需要尝试从核心主机中复制适当
   的 libthread_db.so.1 库。
 

2>
启动加载配置文件的顺序:
dbx  -s可以指定加载的初始化配置文件。
寻找.dbxrc 的顺序:
/installation_directory/lib ->
当前目录./.dbxrc-> $HOME: $HOME/.dbxrc
 在 Solaris 平台上,默认 installation_directory 为
/opt/SUNWspro ;在 Linux 平台上,默认 installation_directory 为
/opt/sun/sun/sunstudio10u1

3>
创建 .dbxrc 文件:
(dbx) help .dbxrc>$HOME/.dbxrc

Comments:

Post a Comment:
Comments are closed for this entry.
About

williamxue

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today