code
Jon Yu
这个作者很懒,什么都没留下…
展开
-
linux 进程可靠运行几种方法
1. 问题分析:ssh打开终端,执行耗时行为(编译大项目),网络不稳定,需要断开ssh, 关闭ssh终端,最终导致编译终止。一个shell 为一个会话,一个会话包含多个进程组,一个进程组包含多个进程。当控制进程失去shell终端时,内核回向其发送SIGHUP信号。shell收到SIGHUP信号时,会向其创建的前后台进程组发送SIGHUP信号,各个进程收到SIGHUP信号,默认终止任务。2. 解决方法2.1 setsid commandsetsid 开启新会话,完全不属于shell的会话,故其父原创 2021-10-01 18:36:49 · 237 阅读 · 0 评论 -
gdbserver gdb初次使用
测试程序:// test.c#include <stdio.h>#include <pthread.h> int g_data = 0; void thread1_func(void *args) { int i = 0; while(i < 2) { i++; g_data += i; } } int main(){ int i; int flag = 1;原创 2021-09-24 23:21:29 · 5977 阅读 · 0 评论 -
内存相关调试(2)core文件调试
修改core文件大小为无限大ulimit -c unlimited检查 ulimit -c 输出 unlimited控制core文件的文件名中是否添加pid作为扩展。文件内容为1,表示添加pid作为扩展名,生成的core文件格式为core.xxxx;为0则表示生成的core文件同一命名为core。sudo sh -c "echo 1 > /proc/sys/kernel/core_uses_pid"控制core文件保存位置和文件名格式将core文件统一生成到当前目录下sudo..原创 2021-09-21 22:17:09 · 300 阅读 · 0 评论 -
内存相关调试(2)valgrind
程序例子#include <stdio.h>#include <stdlib.h>#include <string.h>static void mem_leak1(){ char *p = malloc(1);}static void mem_leak2(){ FILE *p = fopen("test.txt", "w+");}static void mem_overrun1(){ char *p = malloc.原创 2021-09-21 21:04:25 · 159 阅读 · 0 评论 -
内存相关调试(1)
查看文件描述符是否关闭,持续增加1.1. ls /proc/pid/fd/ -l 查看文件描述是否增加1.2. lsof -p pid 查看文件描述符FD是否增加 lsof: WARNING: can't stat() fuse file system /root/.cache/doc Output information may be incomplete. lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /ro.原创 2021-09-21 20:15:45 · 235 阅读 · 0 评论 -
Doxygen和Graphviz 生成 代码函数调用关系
1. cd 代码目录2. doxygen -g 生成一个叫 ‘Doxyfile’文件3. 修改Doxyfile: HAVE_DOT = YES EXTRACT_ALL = YES EXTRACT_PRIVATE = YES EXTRACT_STATIC = YES CALL_GRAPH = YES4. doxygen Doxyfile5. 查看html原创 2021-06-01 17:26:03 · 177 阅读 · 0 评论