首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux命令核

Linux命令核
EN

Stack Overflow用户
提问于 2015-06-17 07:11:40
回答 1查看 146关注 0票数 0

我是观察分割错误时,随机做一个特定的进程标识ps。pid指向的THe进程在执行ps {pid}期间启动并运行。

回溯:

代码语言:javascript
复制
(gdb) bt
#0  reset_global () at ps/global.c:362
#1  0x0000000000402456 in main (argc=2, argv=0x7ffe02d33fa8) at ps/display.c:578 (gdb)

在ps/global.c:362,调用look_up_our_self(&p);

代码语言:javascript
复制
359         void reset_global(void){
360           static proc_t p;
361           reset_selection_list();
362           look_up_our_self(&p);
363           set_screen_size();
364           set_personality();
365           int fd;
366           char *buf[BUFFSIZE];

拆开放出来。

代码语言:javascript
复制
gdb) disassemble

0x000000000040315a <+74>:       callq  0x401930 <free@plt>
   0x000000000040315f <+79>:    test   %rbp,%rbp
   0x0000000000403162 <+82>:    jne    0x403148 <reset_global+56>
   0x0000000000403164 <+84>:    lea    0x10(%rsp),%rbx
   0x0000000000403169 <+89>:    mov    $0x635860,%edi
   0x000000000040316e <+94>:    movq   $0x0,0x21253f(%rip)        # 0x6156b8 <selection_list>
=> 0x0000000000403179 <+105>:   callq  0x401a60 <look_up_our_self@plt>
   0x000000000040317e <+110>:   xor    %eax,%eax
   0x0000000000403180 <+112>:   mov    %rbx,%rdx
   0x0000000000403183 <+115>:   mov    $0x5413,%esi
   0x0000000000403188 <+120>:   mov    $0x1,%edi
   0x000000000040318d <+125>:   callq  0x4017f0 <ioctl@plt>
   0x0000000000403192 <+130>:   cmp    $0xffffffffffffffff,%eax

寄存器

代码语言:javascript
复制
(gdb) info registers
rax            0xdeadbeef       3735928559
rbx            0x7ffe02cb3d50   140728945294672
rcx            0x0      0
rdx            0x0      0
rsi            0x7ffe02d33ce0   140728945818848
rdi            0x635860 6510688
rbp            0x7ffe02d33df0   0x7ffe02d33df0
rsp            0x7ffe02cb3d40   0x7ffe02cb3d40
r8             0x0      0
r9             0x1      1
r10            0x8      8
r11            0x206    518
r12            0x2      2
r13            0x7ffe02d33fa8   140728945819560
r14            0x0      0
r15            0x0      0
rip            0x403179 0x403179 <reset_global+105>
eflags         0x10246  [ PF ZF IF RF ]
cs             0x33     51
ss             0x2b     43
ds             0x0      0
es             0x0      0
fs             0x0      0
gs             0x0      0
(gdb) 

更新:地图输出:

代码语言:javascript
复制
00400000-00416000 r-xp 00000000 00:11 6116
/bin/ps 00615000-00616000 rw-p 00015000 00:11 6116
/bin/ps 00616000-00636000 rw-p 00000000 00:00 0 7ffe0258d000-7ffe026e1000 r-xp 00000000 00:11 8166
/lib64/libc-2.11.1.so 7ffe026e1000-7ffe028e1000 ---p 00154000 00:11 8166 /lib64/libc-2.11.1.so 7ffe028e1000-7ffe028e5000 r--p 00154000 00:11 8166
/lib64/libc-2.11.1.so 7ffe028e5000-7ffe028e6000 rw-p 00158000 00:11 8166 /lib64/libc-2.11.1.so 7ffe028e6000-7ffe028eb000 rw-p 00000000 00:00 0 7ffe028eb000-7ffe028ed000 r-xp 00000000 00:11 8175
/lib64/libdl-2.11.1.so 7ffe028ed000-7ffe02aed000 ---p 00002000 00:11 8175 /lib64/libdl-2.11.1.so 7ffe02aed000-7ffe02aee000 r--p 00002000 00:11 8175
/lib64/libdl-2.11.1.so 7ffe02aee000-7ffe02aef000 rw-p 00003000 00:11 8175 /lib64/libdl-2.11.1.so 7ffe02aef000-7ffe02afe000 r-xp 00000000 00:11 8213
/lib64/libproc-3.2.8.so 7ffe02afe000-7ffe02cfe000 ---p 0000f000 00:11 8213 /lib64/libproc-3.2.8.so 7ffe02cfe000-7ffe02cff000 rw-p 0000f000 00:11 8213
/lib64/libproc-3.2.8.so 7ffe02cff000-7ffe02d13000 rw-p 00000000 00:00 0 7ffe02d14000-7ffe02d35000 rw-p 00000000 00:00 0
[stack] 7ffe02d7f000-7ffe02d80000 r-xp 00000000 00:00 0
[vdso] 7ffe02eaa000-7ffe02ec8000 r-xp 00000000 00:11 8156
/lib64/ld-2.11.1.so 7ffe030b9000-7ffe030bc000 rw-p 00000000 00:00 0 7ffe030c6000-7ffe030c7000 rw-p 00000000 00:00 0 7ffe030c7000-7ffe030c8000 r--p 0001d000 00:11 8156
/lib64/ld-2.11.1.so 7ffe030c8000-7ffe030c9000 rw-p 0001e000 00:11 8156 /lib64/ld-2.11.1.so 7ffe030c9000-7ffe030ca000 rw-p 00000000 00:00 0 ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0
[vsyscall]
EN

回答 1

Stack Overflow用户

发布于 2015-06-17 12:49:06

请查找下面的proc/map文件内容,以了解上述分段错误:代表Guruswamy Basavaiah

代码语言:javascript
复制
    00400000-00416000 r-xp 00000000 00:11 6116                               /bin/ps
    00615000-00616000 rw-p 00015000 00:11 6116                               /bin/ps
    00616000-00636000 rw-p 00000000 00:00 0
    7ffe0258d000-7ffe026e1000 r-xp 00000000 00:11 8166                       /lib64/libc-2.11.1.so
    7ffe026e1000-7ffe028e1000 ---p 00154000 00:11 8166                       /lib64/libc-2.11.1.so
    7ffe028e1000-7ffe028e5000 r--p 00154000 00:11 8166                       /lib64/libc-2.11.1.so
    7ffe028e5000-7ffe028e6000 rw-p 00158000 00:11 8166                       /lib64/libc-2.11.1.so
    7ffe028e6000-7ffe028eb000 rw-p 00000000 00:00 0
    7ffe028eb000-7ffe028ed000 r-xp 00000000 00:11 8175                       /lib64/libdl-2.11.1.so
    7ffe028ed000-7ffe02aed000 ---p 00002000 00:11 8175                       /lib64/libdl-2.11.1.so
    7ffe02aed000-7ffe02aee000 r--p 00002000 00:11 8175                       /lib64/libdl-2.11.1.so
    7ffe02aee000-7ffe02aef000 rw-p 00003000 00:11 8175                       /lib64/libdl-2.11.1.so
    7ffe02aef000-7ffe02afe000 r-xp 00000000 00:11 8213                       /lib64/libproc-3.2.8.so
    7ffe02afe000-7ffe02cfe000 ---p 0000f000 00:11 8213                       /lib64/libproc-3.2.8.so
    7ffe02cfe000-7ffe02cff000 rw-p 0000f000 00:11 8213                       /lib64/libproc-3.2.8.so
    7ffe02cff000-7ffe02d13000 rw-p 00000000 00:00 0
    7ffe02d14000-7ffe02d35000 rw-p 00000000 00:00 0                          [stack]
    7ffe02d7f000-7ffe02d80000 r-xp 00000000 00:00 0                          [vdso]
    7ffe02eaa000-7ffe02ec8000 r-xp 00000000 00:11 8156                       /lib64/ld-2.11.1.so
    7ffe030b9000-7ffe030bc000 rw-p 00000000 00:00 0
    7ffe030c6000-7ffe030c7000 rw-p 00000000 00:00 0
    7ffe030c7000-7ffe030c8000 r--p 0001d000 00:11 8156                       /lib64/ld-2.11.1.so
    7ffe030c8000-7ffe030c9000 rw-p 0001e000 00:11 8156                       /lib64/ld-2.11.1.so
    7ffe030c9000-7ffe030ca000 rw-p 00000000 00:00 0
    ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30884627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档