DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 541 评论 :: 1614万 阅读
< 2025年2月 >
26 27 28 29 30 31 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 1
2 3 4 5 6 7 8

06 2016 档案

摘要:U盘挂载命令U盘插入的时候会显示启动信息,启动信息中sda: sda1指U盘的设备名为sda1dev设备目录下有一个sda1设备文件,此设备文件就是我们插入的U盘,我们将这个设备文件挂载到Linux系统的/mnt/udisk1这个目录下,这样我们即可以通过访问/mnt/udisk1目录来读写U盘,挂 阅读全文
posted @ 2016-06-30 19:40 DoubleLi 阅读(6045) 评论(0) 推荐(0) 编辑

摘要:在网上有很多关于讲mdev的自动挂载基本上都是一个版本,经过测试自动挂载确实可行,但是关于自动卸载mdev似乎不能很好的支持,经过修改已经可以做到与udev的效果相似。不能在挂载的目录中进行热插拔,否则会出现问题,不过此问题在下次插入U盘时不会造成影响,可能对U盘有损坏。 本文介绍了mdev与ude 阅读全文
posted @ 2016-06-30 16:53 DoubleLi 阅读(3383) 评论(1) 推荐(0) 编辑

摘要:Linux的文件系统是异步的,也就是说写一个文件不是立刻保存到介质(硬盘,U盘等)中,而是存到缓冲区内,等积累到一定程度再一起保存到介质中。如果没有umount就非法拔出U盘,程序是不知道的,fopen,fwrite等函数都依然返回正确,知道操作系统要把写介质的时候,才会提示I/O错误。可是很多数据 阅读全文
posted @ 2016-06-30 16:52 DoubleLi 阅读(7444) 评论(0) 推荐(0) 编辑

摘要:例: [cpp] view plain copy status = system("./test.sh"); [cpp] view plain copy status = system("./test.sh"); [cpp] view plain copy [cpp] view plain copy 阅读全文
posted @ 2016-06-30 16:51 DoubleLi 阅读(6803) 评论(0) 推荐(0) 编辑

摘要:以下是网上看到的解决办法:http://blog.csdn.net/heqiuya/article/details/7870554 [plain] view plain copy 其实是掉电保护,之前挂在的SD变成了制度文件,只需要将SD卡重新挂载一遍就OK了. FAT: Filesystem pa 阅读全文
posted @ 2016-06-30 16:44 DoubleLi 阅读(2550) 评论(1) 推荐(0) 编辑

摘要:一、土八路做法: SD 卡一旦插入系统,内核会自动在/dev/下创建设备文件:sdcard。 但有时可能时用户在拨出卡前并没有umount的话,第二次插卡进去后系统创建的就不是sdcard设备文件了,而是mmcblk0, mmcblk1p1, mmcblk2p1, 或mmcblk3p1.所以只需用i 阅读全文
posted @ 2016-06-30 16:41 DoubleLi 阅读(7630) 评论(0) 推荐(0) 编辑

摘要:原文链接:5 simple ways to troubleshoot using Strace 我很意外大部分人都不知道如何使用strace。strace一直是我的首选debug工具,因为它非常的有效,很多问题都能够用它进行排查。 strace是什么? Strace是一个用来跟踪系统调用的简易工具。 阅读全文
posted @ 2016-06-30 15:22 DoubleLi 阅读(9767) 评论(0) 推荐(0) 编辑

摘要:我们可以通过 1) gdb prog_name -> r 用在逐步调试自己的程序时 2) gdb -> attach process_id 正在运行中的后台程序突然卡在了某个地方,先ps再gdb/attach 3) gdb prog_name core 程序core掉了 三种方式对一个程序进行调试; 阅读全文
posted @ 2016-06-30 14:54 DoubleLi 阅读(1755) 评论(0) 推荐(0) 编辑

摘要:只做工作总结备忘之用。 正在烧镜像,稍总结一下进来改bug遇到的问题。 一个项目里要用到L3 switch的nat,vrrp功能,但实地测试中偶然出现write file挂死的情况,但不是必现。交付在即,于是加调试信息,反复跑配置的脚本,定位bug。 一,期初怀疑是vtysh与vrrpd进程通信出现 阅读全文
posted @ 2016-06-30 14:52 DoubleLi 阅读(591) 评论(0) 推荐(0) 编辑

摘要:摘要:在使用多线程程序时,有时会遇到程序功能异常的情况,而这种异常情况并不是每次都发生,很难模拟出来。这时就需要运用在程序运行时跟踪线程的手段,而linux系统的LWP和strace命令正是这种技术手段。本文对LWP和strace命令做了简明扼要的介绍,并通过一个实例来说明如何运用。总而言之,LWP 阅读全文
posted @ 2016-06-30 14:42 DoubleLi 阅读(6109) 评论(0) 推荐(0) 编辑

摘要:gdb 调试多线程如果目标进程已经core dump了,那么 gdb -c core xxx xxx是对应的程序文件。如果目标进程还在运行,通常此时用于调试线程死锁的情况。有两种方法一是 gdb -p xxx xxx是该进程的进程ID或者用gcore xxx先获取对应进程的core,他会生成一个co 阅读全文
posted @ 2016-06-30 14:37 DoubleLi 阅读(1322) 评论(0) 推荐(0) 编辑

摘要:线程有自己的寄存器,运行时堆栈或许还会有私有内存。 gdb提供了以下供调试多线程的进程的功能: * 自动通告新线程。 * \ "thread THREADNO\ ",一个用来在线程之间切换的命令。 * \ "info threads\ ",一个用来查询现存线程的命令。 * \ "thread app 阅读全文
posted @ 2016-06-30 14:36 DoubleLi 阅读(371) 评论(0) 推荐(0) 编辑

摘要:一、多线程调试 多线程调试重要就是下面几个命令: info thread 查看当前进程的线程。 thread <ID> 切换调试的线程为指定ID的线程。 break file.c:100 thread all 在file.c文件第100行处为所有经过这里的线程设置断点。 set scheduler- 阅读全文
posted @ 2016-06-30 14:34 DoubleLi 阅读(715) 评论(1) 推荐(0) 编辑

摘要:GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。 一般来说GDB主要调试 阅读全文
posted @ 2016-06-30 14:23 DoubleLi 阅读(17550) 评论(0) 推荐(0) 编辑

摘要:方法一:strace -fp pid , 可以跟踪所有线程, 进程的系统调用。 [root@xxxx]strace -p 24091 Process xxx attached - interrupt to quit [ Process PID=24091 runs in 32 bit mode. ] 阅读全文
posted @ 2016-06-30 14:18 DoubleLi 阅读(8866) 评论(0) 推荐(0) 编辑

摘要:pthread_kill: 别被名字吓到,pthread_kill可不是kill,而是向线程发送signal。还记得signal吗,大部分signal的默认动作是终止进程的运行,所以,我们才要用signal()去抓信号并加上处理函数。 int pthread_kill(pthread_t threa 阅读全文
posted @ 2016-06-30 13:34 DoubleLi 阅读(8390) 评论(0) 推荐(0) 编辑

摘要:我编写了一个循环: long i; for (i = 0; i < 999999; i++) { mt.a += 1; sleep(1); }把它编译成a.out,并在后台执行它:./a.out & [1] 2570 然后用命令gdb ./a.out 2570可以附加到这个进程上。被时进程会中断。 阅读全文
posted @ 2016-06-30 13:32 DoubleLi 阅读(921) 评论(0) 推荐(0) 编辑

摘要:查看堆栈:gdb -quiet -batch -ex='thread apply all bt' -p pid查看运行位置:gdb -quiet -batch -ex='thread apply all x $pc' -p pid 阅读全文
posted @ 2016-06-30 11:52 DoubleLi 阅读(4560) 评论(0) 推荐(0) 编辑

摘要:pstack.sh: #! /bin/sh if [ -z $1 ] then echo "gdb script for print stack" echo "usage: $0 pid" exit fi gdb --batch --quiet -x cmds -p $1 cmds: echo /n 阅读全文
posted @ 2016-06-30 09:30 DoubleLi 阅读(664) 评论(0) 推荐(0) 编辑

摘要:#!/bin/bash if (( $# < 1 )) then echo "usage: `basename $0` pid" 1>&2 exit 1 fi if [[ ! -r /proc/$1 ]] then echo "Process $1 not found." 1>&2 exit 1 f 阅读全文
posted @ 2016-06-30 09:29 DoubleLi 阅读(1115) 评论(0) 推荐(0) 编辑

摘要:pstack.sh 改进版本 #!/bin/bashif (( $# < 1 )) ; then echo "usage: `basename $0` pid" 1>&2 exit 1fi if [[ ! -r /proc/$1 ]] ; then echo "Process $1 not foun 阅读全文
posted @ 2016-06-30 09:29 DoubleLi 阅读(298) 评论(0) 推荐(0) 编辑

摘要:Eclipse GNU ARM Plugin2014/7/16 作者 kiya 几个月前写了一篇《用Eclipse替代Keil&amp;IAR来开发ARM应用》,介绍了GNU ARM这个优秀的Eclipse插件。但由于配置过于复杂,不太实用。好消息是这个插件升级了,提供了只有商业IDE才有的向导功能 阅读全文
posted @ 2016-06-30 09:26 DoubleLi 阅读(3287) 评论(0) 推荐(0) 编辑

摘要:1)如何使用strace+pstack利器分析程序性能?http://www.cnblogs.com/bangerlee/archive/2012/04/30/2476190.html此文有详细介绍怎么用strace和pstack2)Linux下多线程查看工具(pstree、ps、pstack)?h 阅读全文
posted @ 2016-06-29 20:01 DoubleLi 阅读(4056) 评论(0) 推荐(1) 编辑

摘要:0.最常用 pstree:[root@iZ25dcp92ckZ temp]# pstree -a|grep multe | | `-multepoolser | | `-multepoolser | | `-2*[{multepoolser}]1. > top可以显示所有系统进程按u, 再输入相应的 阅读全文
posted @ 2016-06-29 20:00 DoubleLi 阅读(7895) 评论(0) 推荐(0) 编辑

摘要:有两种方法:第一种:pstack 进程ID 第二种,使用gdb 然后attach 进程ID,然后再使用命令 thread apply all bt 第三种:strace -f -p pid 该方法和pstack类似 第四中:gcore pid ,输出core文件,gdb cmd corefile 两 阅读全文
posted @ 2016-06-29 19:56 DoubleLi 阅读(25914) 评论(0) 推荐(0) 编辑

摘要:1、TOP命令,找到占用CPU最高的进程 $ top top - 20:11:45 up 850 days, 1:18, 3 users, load average: 1.04, 1.01, 0.99 Tasks: 61 total, 1 running, 60 sleeping, 0 stoppe 阅读全文
posted @ 2016-06-29 19:52 DoubleLi 阅读(6603) 评论(0) 推荐(0) 编辑

摘要:原创:LCTT https://linux.cn/article-5633-1.html 译者: GOLinux本文地址:https://linux.cn/article-5633-1.html2015-6-15 15:44 收藏: 9 问题: 我的程序在其内部创建并执行了多个线程,我怎样才能在该程 阅读全文
posted @ 2016-06-29 19:47 DoubleLi 阅读(6077) 评论(0) 推荐(1) 编辑

摘要:编译自:http://ask.xmodulo.com/number-of-threads-process-linux.html作者: Dan Nanni原创:LCTT https://linux.cn/article-6240-1.html译者: strugglingyouth本文地址:https: 阅读全文
posted @ 2016-06-29 19:42 DoubleLi 阅读(1837) 评论(0) 推荐(0) 编辑

摘要:1、 cat /proc/${pid}/status 2、pstree -p ${pid} 3、top -p ${pid} 再按H 或者直接输入 top -bH -d 3 -p ${pid} top -H手册中说:-H : Threads toggle加上这个选项启动top,top一行显示一个线程。 阅读全文
posted @ 2016-06-29 19:40 DoubleLi 阅读(2168) 评论(0) 推荐(0) 编辑

摘要:http://www.itshanghai.net/technology/2009/0209/article_238.html http://www.itshanghai.net/technology/2009/0209/article_238.html 另外,可以参考这个http://www.ce 阅读全文
posted @ 2016-06-29 19:34 DoubleLi 阅读(6236) 评论(1) 推荐(1) 编辑

摘要:如何定位死循环或高CPU使用率(linux) 确定是CPU过高 使用top观察是否存在CPU使用率过高现象 找出线程 对CPU使用率过高的进程的所有线程进行排序 ps H -e -o pid,tid,pcpu,cmd --sort=pcpu |grep xxx 得到如下结果,其中线程2909使用了7 阅读全文
posted @ 2016-06-29 16:59 DoubleLi 阅读(1112) 评论(0) 推荐(0) 编辑

摘要:1. 使用 pstree -p PID ps aux | grep firefox | grep -v grepcharles 26058 0.0 0.0 4908 1152 ? S 19:17 0:00 /bin/sh /usr/lib/firefox-3.5.4/run-mozilla.sh / 阅读全文
posted @ 2016-06-29 16:58 DoubleLi 阅读(4371) 评论(0) 推荐(0) 编辑

摘要:简介 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。 输出信息含义 执行netstat后,其输出结果为 从整体上看,netstat的 阅读全文
posted @ 2016-06-27 11:13 DoubleLi 阅读(346) 评论(0) 推荐(0) 编辑

摘要:写在前面:RTP的解析,网上找了很多资料,但是都不全,所以我力图整理出一个比较全面的解析, 其中借鉴了很多文章,我都列在了文章最后,在此表示感谢。 互联网的发展离不开大家的无私奉献,我决定从我做起,希望大家支持。 原创不易,转载请附上链接,谢谢http://blog.csdn.net/chen495 阅读全文
posted @ 2016-06-08 15:41 DoubleLi 阅读(15193) 评论(1) 推荐(2) 编辑

摘要:首先,ps -A查看你所查看进程的进程号 ps -A 加入进程号为pid 那么使用如下脚本,可以打印该进程使用的虚拟内存和物理内存: root@Storage:/mnt/mtd# cat rss.sh #!/bin/shwhile true do cat /proc/pid/stat | awk - 阅读全文
posted @ 2016-06-07 19:29 DoubleLi 阅读(4682) 评论(0) 推荐(0) 编辑

摘要:啥也不说,直接上脚本: root@Storage:/mnt/mtd# cat cpu.sh #!/bin/shwhile truedo ps -H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu sleep 1doneroot@Storage:/mnt 阅读全文
posted @ 2016-06-07 17:54 DoubleLi 阅读(1257) 评论(0) 推荐(0) 编辑

摘要:[-] 内存问题排查手段及相关文件介绍重点 1 procsysvmmin_free_kbytes 2 procsysvmdrop_caches 3 procsysrq-trigger 31对echo m procsysrq-trigger输出的解析 4 cat procslabinfo 5 cat 阅读全文
posted @ 2016-06-07 17:44 DoubleLi 阅读(11196) 评论(0) 推荐(1) 编辑

摘要:一. CPU 过高或死锁导致系统卡死 1. CPU占用过高 (1)开线程太多导致CPU占用过高,系统卡死 解决:优化应用层业务逻辑,有些业务不必开线程就不开 (2)频繁清缓存导致读spi-flash频繁,引起CPU过高 解决:在内核中文件系统部分进行处理,不去清缓存,然后在应用层用后台服务进程清缓存 阅读全文
posted @ 2016-06-07 17:40 DoubleLi 阅读(1355) 评论(0) 推荐(0) 编辑

摘要:gcc指定头文件路径及动态链接库路径 本文详细介绍了linux 下gcc头文件指定方法,以及搜索路径顺序的问题。另外,还总结了,gcc动态链接的方法以及路径指定,同样也讨论了搜索路径的顺序问题。本文包含了很多的例子,具有很强的操作性,希望读者自己去走一遍。一.#include <>与#include 阅读全文
posted @ 2016-06-07 09:01 DoubleLi 阅读(12741) 评论(0) 推荐(2) 编辑

点击右上角即可分享
微信分享提示