大家好,我是杂烩君。
嵌入式Linux开发中,有时候为了定位问题,需要查看某个进程的各个线程的运行情况。
例子
multi_thread.c:
左右滑动查看全部代码>>>
#define _GNU_SOURCE
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
// 线程名称最大长度
#define APP_THREAD_NAME_MAX_LEN 32
// 线程索引
typedef enum _app_thread_index
{
APP_THREAD_INDEX_TEST0,
APP_THREAD_INDEX_TEST1,
APP_THREAD_INDEX_TEST2,
APP_THREAD_INDEX_TEST3,
APP_THREAD_INDEX_TEST4,
APP_THREAD_INDEX_TEST5,
APP_THREAD_INDEX_MAX
}app_thread_index_e;
// 线程入口函数指针类型
typedef void *(*p_thread_fun)(void *param);
// 线程数据表
typedef struct _app_thread
{
pthread_t thread_handle;
p_thread_fun thread_entry;
char name[APP_THREAD_NAME_MAX_LEN];
}app_thread_s;
static void *test0_thread_entry(void *param);
sta