shell
文章平均质量分 53
05jin
嵌入式linux,stm32
展开
-
gdb调试
Ubuntu gdb 调试 过程 jin@ubuntu:~/jin/gdb$ gdb -vGNU gdb (Ubuntu/Linaro 7.4-2012.02-0ubuntu2) 7.4-2012.02Copyright (C) 2012 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>This is free soft原创 2022-03-03 00:34:50 · 547 阅读 · 0 评论 -
如何查看进程使用的线程数量?
如何查看当前进程有多少个存活线程呢?方法1)pstree -p 4761(进程ID)。如下截图所示:方法2)cat /proc/4761(进程ID)/status。如下图所示:方法3)top -p 4761(进程ID),然后按H。如下图所示:脚本解释:比如某台服务器的CPU使用率飙升,通过top命令查看是gitlab程序占用的cpu比较大,"ps -ef|grep gitlab"发现有很多个gitlab程序,现在需要查询gitlab各个进程下的线程数...原创 2020-12-10 13:28:49 · 8929 阅读 · 0 评论 -
linux /proc/pid/smaps各字段含义
smaps文件内容格式是:7f4913d8f000-7f4913ddd000 r-xp 00000000 fd:00 791940 /usr/local/boost149/lib/libboost_python.so.1.49.0Size: 312 kBRss: 20 kBPss: 2 kBShared_Clean: 20 kBShar原创 2020-12-10 13:23:43 · 2059 阅读 · 0 评论 -
linux 内存查看方法:meminfo\maps\smaps\status 文件解析
linux 下面查看内存有多种渠道,比如通过命令 ps ,top,free 等,比如通过/proc系统,一般需要比较详细和精确地知道整机内存/某个进程内存的使用情况,最好通过/proc 系统,下面介绍/proc系统下内存相关的几个文件单个进程的内存查看 cat /proc/[pid] 下面有几个文件: maps , smaps, statusmaps 文件可以查看某个进程的代码段、栈区、堆区、动态库、内核区对应的虚拟地址,如果你还不了解linux进程的内存空间,可以参考这里。下图是...转载 2020-11-13 11:50:01 · 1349 阅读 · 1 评论 -
free 命令的一些说明
free命令用了很久了,但是知其然有些不知其所以然。今天为了追查一个内存泄漏问题,特意去仔细研究了一下。一般来说,该命令输出如下: total used free shared buffers cachedMem: 2059500 2042852 16648 0 26708 303484-/+ buffers/cache: 1712660 3.原创 2020-11-13 09:48:37 · 155 阅读 · 0 评论 -
Makefile 动态库 静态库
原创 2020-03-23 15:35:04 · 174 阅读 · 0 评论 -
cat >file,cat <file <<EOF,ls -l >file <<EOF
1、重定向 > >> 2、cat >file记录的是键盘输入,相当于从键盘创建文件,并且只能创建新文件,不能编辑已有文件.>是数据重导向,会将你输入的文本内容输出到file中。3、cat cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的;EOF是"end of file",表示文本结束符。结合原创 2015-06-10 11:39:17 · 871 阅读 · 0 评论 -
ps kworker irq
kworker通过 ps 命令查看进程状态时,可以查看到kworker相关,大部分格式都是 kworker /u2:0或者 kworker /0:0H, 查看资料得知:内核中有很多kworker,有绑定cpu的和不绑定cpu的,它支持cpu的hotplug时work的迁移。u:是unbound的缩写,代表没有绑定特定的CPU,kworker /u2:0中的 2 是 wor...原创 2019-10-09 10:01:12 · 1859 阅读 · 0 评论 -
Linux调试工具
1. 使用printf调试#ifdef DEBUGPrintf(“valriable x has value = %d\n”, x)#endif然后在编译选项中加入-DDEBUG更复杂的调试应用如:#define BASIC_DEBUG 1#define EXTRA_DEBUG 2#define SUPER_DEBUG 4#if (DEBUG &EXTR...转载 2019-10-11 10:11:55 · 1093 阅读 · 0 评论