netstat -napt
ss -napt
ulimit -s //默认8192
-a 也可以查看全部
g++ -fPIC -shared libxxx.so
ar rsc
cat //输出文件
uniq -c // 在每一列旁边显示该列的重复次数(-c) -u 显示仅出现一次的行
sort -n // 按数值(-n)排序 -r 从大到小排序
head -n 200 // 表示显示1-200行
sync
fsync
-b [行数][函数名] 断点
-c 运行到断点
-s 进入函数
-n 下一行
-finish 结束函数
-bt 查看函数堆栈
-frame [spec] 0的话表示当前栈帧 最大的是main函数
-info frame 打印当前栈帧的信息(编号、地址、局部变量等)
-until 跳出循环体
-b filename:line number 设置程序的断点在某个文件中
-d N 删除断点
-display/print/p: 查看局部变量
-x 查看内存:
命令:x/3uh 0x7ff320
表示,从内存地址0x7ff320读取内容,h表示以双字节为一个单位,3表示三个单位,u表示按十进制显示无符号整型。
答:
首先可以用ulimit -c unlimited
来开启.core
文件。
然后用gdb 程序名 core
进行调试
1. 解压tar.gz 文件: tar -zxf
2. 解压zip 文件: unzip
touch filename.xxx
答:
那么,我们可以先把debug
版本的程序运行起来:
ps- aux | grep 程序名
;gdb attach pid
调试正在运行的程序,当然这个程序是在debug
版本下运行的;thread apply all bt
打印所有线性的调用栈信息;info threads
看一下所有的线程情况thread [1|2|3]
where
打印该线程的堆栈情况答:
? scp 本地Linux系统文件路径 远程用户名@IP地址:远程系统文件绝对路径名
答:
lsof -p + 进程号
答:
? 从左到右是三组 rwx,描述了文件所属者、文件所属组、其他用户的可读可写可执行
状态。
答:
strace
答:
nohup xxx &
答:
?
VIRT:分配的虚拟内存的大小。
RES:实际使用内存的大小。
SHR:共享内存的大小。
答:
df -h + 目录