Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- linux
- 인천
- host key
- thread pid
- 디버깅
- 괌
- 다수 클라이언트
- ubuntu
- vcore
- whatis
- IPv6
- core file
- ubuntu22.04
- vi
- kdumo
- 꺠짐
- 노트북 배터리 교체
- C
- 옛날 탕수육
- gdb tip
- 인화여고
- 칼국수
- 리눅스
- Listen
- spacse
- xshell4
- hostkeyalgorithms
- 노트북 정보
- 괌여행
- 출력
Archives
- Today
- Total
극히 개인적이고 극히 대단하지 않은
리눅스에서 thread의 pid를 확인하는 코드 본문
Multithread program을 작성하고 버그를 잡다보면 thread의 pid를 알아야 간지러운 곳이 해결되는 경우가 있다. 특히 gdb를 이용해서 디버깅을 하는 경우에 아쉬울 때가 많다.
그런 경우에는 thread 내부에서 다음과 같은 코드를 수행하면 자신 thread의 pid를 알 수 있다.
syscall(__NR_gettid)
예를 들어 다음과 같이 코딩을 하면 thread 이름과 pid를 확보할 수 있다.
#include <linux/unistd.h>
#include <stdio.h>
#include <pthread.h>
void *sample_thread (void *arg)
{
...
printf ("Thread Information :: [%s][%d]\n", __func__, syscall(__NR_gettid));
...
pthread_exit (NULL);
}
'20년차 개발자' 카테고리의 다른 글
kdump를 설정했음에도 kdump가 생기지 않는 대표적 경우와 해결책 (0) | 2023.03.30 |
---|---|
다수 클라이언트 환경에서의 서버 소켓의 listen (0) | 2022.12.08 |
요긴한 gdb 명령들 (0) | 2021.05.20 |
C 디버깅용 로그 출력할 때, 자동으로 함수이름과 라인번호 출력하기 (0) | 2020.09.11 |
vi 에디터로 hex모드로 에디팅 시 컬럼 수 늘이기 (0) | 2020.04.22 |
Comments