Debug POSIX 多线程

Debug 多线程问题通常会遇到,死锁,资源释放出错,进程不能正常退出等。

1. 死锁的问题可以通过加debug message 来解决。

2. 后面两个问题可能会用到一些下面到方式。


启动每一个线程时输出线程ID, 在结束时根据线程ID判断哪个线程没有退出。

#gettid

pid_t gettid(void)
{
    return syscall(SYS_gettid);
}



#running task

void running_task(void)
{
    char cmd[32];
    memset(cmd, 0, sizeof cmd);
    printf("main pid: %d\n", getpid());
    sprintf(cmd, "ls /proc/%d/task", getpid());
    system(cmd);
 }



Debug POSIX 多线程

上一篇:HTTP请求:GET与POST方法的区别


下一篇:在客户端录制语音