https://blog.csdn.net/senlin1202/article/details/51011129

    段错误:
    Nov 3 17:03:54 haier-45 kernel: haierUpassServe[22708]: segfault at 3946 ip 0000000000003946 sp 00007f56edf20e18 error 14 in haierUpassServer[400000+13000]

    以上信息说明:

    • 开始是系统当前时间
    • 进程名字及pid
    • segfault at 引起故障的地址
    • ip 指令的内存地址
    • sp 堆栈指针地址, 及栈顶指针
    • err is not an errno nor a signal numbe, but page fault error code
    • [400000+13000] 对象崩溃时映射的虚拟内存起始地址和大小

    errcode 详见linux 内核源码arch/*/mm/fault.c 描述
    Page fault error code bits:

    bit 0 == 0: no page found1: protection fault
    bit 1 == 0: read access1: write access
    bit 2 == 0: kernel-mode access1: user-mode access
    bit 3 == 1: use of reserved bit detected
    * bit 4 == 1: fault was an instruction fetch

    bit2:值为1表示是用户态程序内存访问越界,值为0表示是内核态程序内存访问越界
    bit1: 值为1表示是写操作导致内存访问越界,值为0表示是读操作导致内存访问越界
    bit0: 值为1表示没有足够的权限访问非法地址的内容,值为0表示访问的非法地址根本没有对应的页面,也就是无效地址