Linux
Linux
Peel Chen
这个作者很懒,什么都没留下…
展开
-
coredump使用方法
在Linux环境下输入:ulimit -c unlimited;//不限制coredump的大小ulimit -c unlimited echo “1” > /proc/sys/kernel/core_uses_pid //开启coredump后缀echo “/mnt/core-%e-%p-%t” > /proc/sys/kernel/core_pattern //制定coredump的生成路径程序出错时,会自动生成coredump文件set solib-search-path 库文.原创 2021-10-19 20:49:09 · 599 阅读 · 0 评论 -
Linux利用maps文件和反汇编定位崩溃地址
一、maps文件maps文件可以查看某个进程的代码段、栈区、堆区、动态库、内核区对应的虚拟地址。第一列:虚拟地址空间的开始和结束地址vm_start-vm_end 。第二列:虚拟地址空间的属性vm_flags 。每种属性用一个字段:r表示可读,w表示可写,x表示可执行,p和s共用一个字段,互斥关系,p表示私有段,s表示共享段,如果没有相应权限,则用-代替。第三列:映射偏移。vm_pgoff 对有名映射,表示此段虚拟内存起始地址在文件中以页为单位的偏移。对匿名映射,它等于0或者vm_start/P原创 2021-07-09 21:00:33 · 1581 阅读 · 2 评论 -
signal信号总结
SignalDescription1SIGHUP信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联2SIGINT程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl+C)时发出3SIGQUIT和 SIGINT类似, 但由QUIT字符(通常是Ctrl+)来控制. 进程在因收到 SIGQUIT 退出时会产生core文件, 在这个意义上类似于一个程序错...转载 2021-06-29 20:12:53 · 1194 阅读 · 0 评论 -
Linux通过Strace和GDB排查死锁问题
死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,他们都将无法推进下去发生死锁通常要满足以下四个条件:互斥条件:一个资源只能同时被一条线程占用。请求和保持条件:当一个线程因获取不到其他资源而阻塞时,对自己所持有的资源保持不放。不剥夺条件:除非线程自己释放资源,否则其占有的资源不可以被剥夺。条件:处于死锁等待中的线程一定会形成一条环路。发生死锁的情况:同一线程递归同一个线程中,试图对同一个互斥量连续加锁两次,那么它自身就会陷入死锁原创 2021-06-05 15:25:37 · 1521 阅读 · 0 评论 -
GDB调试命令用法总结
原创 2021-06-01 19:19:53 · 138 阅读 · 0 评论 -
strip命令简介
在实际的Linux开发中,除了执行文件以外,会有一个用来调试的文件,类型为not striped,想要了解此文件的作用以及产生的原因,首先要了解strip命令strip命令用于脱掉文件的衣服,去除文件中的符号信息首先来看一个执行文件a.out的大小是9918个字节,且是not stripped通过nm命令, 可以读出a.out中的符号信息。chenpi@General:~$ ls -l a.out-rwxrwxr-x 1 chenpi chenpi 9918 Sep 7 2019 a.ou原创 2021-05-06 19:18:55 · 3360 阅读 · 0 评论 -
32位到64位开发代码移植问题
最近工作需要从32位系统移植代码到64位系统,遇到很多意想不到的问题,需要确认代码兼容性,一般通过解决编译和测试中出现的缺陷来完成整个移植过程,现对移植过程中遇到的问题做下总结。32位和64位的区别主要表现在参数类型长度上,区别如下:参数类型32位64位char88unsigned char88short1616unsigned short1616int3232unsigned int3232long3264un原创 2021-04-26 21:40:26 · 496 阅读 · 0 评论 -
grep命令多条件查找
history | grep ‘gui’ | grep -v ‘Wunused’history | grep ‘gui’ | grep ‘pointer’history | grep -E ‘gui | pointer’原创 2021-04-22 09:52:18 · 1093 阅读 · 0 评论