DrawingProcess
λ“œν”„ DrawingProcess
DrawingProcess
전체 방문자
였늘
μ–΄μ œ
Β«   2025/05   Β»
일 μ›” ν™” 수 λͺ© 금 ν† 
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 29 30 31
  • λΆ„λ₯˜ 전체보기 (964)
    • Profile & Branding (22)
      • Career (15)
    • IT Trends (254)
      • Conference, Faire (Experien.. (31)
      • News (187)
      • Youtube (19)
      • TED (8)
      • Web Page (2)
      • IT: Etc... (6)
    • Contents (97)
      • Book (66)
      • Lecture (31)
    • Project Process (94)
      • Ideation (0)
      • Study Report (34)
      • Challenge & Award (22)
      • 1Day1Process (5)
      • Making (5)
      • KRC-FTC (Team TC(5031, 5048.. (10)
      • GCP (GlobalCitizenProject) (15)
    • Study: ComputerScience(CS) (72)
      • CS: Basic (9)
      • CS: Database(SQL) (5)
      • CS: Network (14)
      • CS: OperatingSystem (3)
      • CS: Linux (39)
      • CS: Etc... (2)
    • Study: Software(SW) (95)
      • SW: Language (29)
      • SW: Algorithms (1)
      • SW: DataStructure & DesignP.. (1)
      • SW: Opensource (15)
      • SW: Error Bug Fix (43)
      • SW: Etc... (6)
    • Study: Artificial Intellige.. (149)
      • AI: Research (1)
      • AI: 2D Vision(Det, Seg, Tra.. (35)
      • AI: 3D Vision (70)
      • AI: MultiModal (3)
      • AI: SLAM (0)
      • AI: Light Weight(LW) (3)
      • AI: Data Pipeline (7)
      • AI: Machine Learning(ML) (1)
    • Study: Robotics(Robot) (33)
      • Robot: ROS(Robot Operating .. (9)
      • Robot: Positioning (8)
      • Robot: Planning & Control (7)
    • Study: DeveloperTools(DevTo.. (83)
      • DevTool: Git (12)
      • DevTool: CMake (13)
      • DevTool: NoSQL(Elastic, Mon.. (25)
      • DevTool: Container (17)
      • DevTool: IDE (11)
      • DevTool: CloudComputing (4)
    • 인생을 μ‚΄λ©΄μ„œ (64)
      • λ‚˜μ˜ μ·¨λ―Έλ“€ (7)
      • λ‚˜μ˜ 생각듀 (42)
      • 여행을 λ– λ‚˜μž~ (10)
      • 뢄기별 회고 (5)

개발자 λͺ…μ–Έ

β€œ λ§€μ£Ό λͺ©μš”μΌλ§ˆλ‹€ 당신이 항상 ν•˜λ˜λŒ€λ‘œ μ‹ λ°œλˆμ„ 묢으면 μ‹ λ°œμ΄ ν­λ°œν•œλ‹€κ³  생각해보라.
컴퓨터λ₯Ό μ‚¬μš©ν•  λ•ŒλŠ” 이런 일이 항상 μΌμ–΄λ‚˜λŠ”λ°λ„ 아무도 λΆˆν‰ν•  생각을 μ•ˆ ν•œλ‹€. ”

- Jef Raskin

λ§₯의 아버지 - μ• ν”Œμ»΄ν“¨ν„°μ˜ λ§€ν‚¨ν† μ‹œ ν”„λ‘œμ νŠΈλ₯Ό 주도

인기 κΈ€

졜근 κΈ€

졜근 λŒ“κΈ€

ν‹°μŠ€ν† λ¦¬

hELLO Β· Designed By μ •μƒμš°.
DrawingProcess

λ“œν”„ DrawingProcess

Study: ComputerScience(CS)/CS: Linux

[Linux] gdb둜 process/threads λ””λ²„κΉ…ν•˜λŠ” 방법(feat. μ’€λΉ„ ν”„λ‘œμ„ΈμŠ€)

2022. 10. 25. 16:03
λ°˜μ‘ν˜•
πŸ’‘ λ³Έ λ¬Έμ„œλŠ” 'gdbλ₯Ό ν™œμš©ν•œ μ‹€ν–‰ μ€‘인 ν”„λ‘œμ„ΈμŠ€ & μŠ€λ ˆλ“œ λ””버깅 ν•˜κΈ°'에 λŒ€ν•΄ 정리해놓은 κΈ€μž…λ‹ˆλ‹€.
λ”±νžˆ ν”„λ‘œμ„ΈμŠ€κ°€ 죽은 것은 μ•„λ‹Œλ° κ³Όλ„ν•˜κ²Œ cpuλ₯Ό 작고 μžˆκ±°λ‚˜(νŠΉμ • μŠ€λ ˆλ“œ λ¬΄ν•œλ£¨ν”„), ν”„λ‘œμ„ΈμŠ€κ°€ μ‚΄μ•„λŠ” μžˆμ§€λ§Œ μ•„λ¬΄λŸ° 응닡을 ν•˜μ§€ μ•ŠλŠ”(λ°λ“œλ½) κ²½μš°κ°€ μžˆμŠ΅λ‹ˆλ‹€. ν˜Ήμ€ μ΄κ²½μš°μ— μ‚¬μš©ν•˜λŠ” gdb 디버거λ₯Ό μ΄μš©ν•˜μ—¬ μ‹€ν–‰ 쀑인 ν”„λ‘œμ„ΈμŠ€μ— 직접 λΆ™μ–΄ ν˜„μž¬ μƒνƒœλ₯Ό μ²΄ν¬ν•˜λŠ” 방법을 μ •λ¦¬ν•˜μ˜€μœΌλ‹ˆ μ°Έκ³ λΆ€νƒλ“œλ¦½λ‹ˆλ‹€.

1. μŠ€λ ˆλ“œ/ν”„λ‘œμ„ΈμŠ€ μƒνƒœ ν™•μΈν•˜κΈ°

$ ps -eLf | grep <process name>
UID     PID    PPID  LWP   C NLWP  STIME TTY       TIME        CMD
kukuta  11048  1    11048  0  8    10:52 pts/0    00:00:00 <process name>
kukuta  11048  1    11050  1  8    10:52 pts/0    00:00:27 <process name>
kukuta  11048  1    11051  0  8    10:52 pts/0    00:00:19 <process name>
kukuta  11048  1    11052  0  8    10:52 pts/0    00:00:19 <process name>
kukuta  11048  1    11053  0  8    10:52 pts/0    00:00:00 <process name>
kukuta  11048  1    11054  0  8    10:52 pts/0    00:00:00 <process name>
kukuta  11048  1    11055  0  8    10:52 pts/0    00:00:00 <process name>
kukuta  11048  1    11056  0  8    10:52 pts/0    00:00:00 <process name>
  • ps의 e μ˜΅μ…˜μ€ 전체 ν”„λ‘œμ„ΈμŠ€λ₯Ό 좜λ ₯, L은 μŠ€λ ˆλ“œ μƒνƒœ, fλŠ” 좜λ ₯ν•  수 μžˆλŠ” λͺ¨λ“  λ‚΄μš©μ„ 좜λ ₯ν•˜λΌλŠ” μ˜λ―Έμž…λ‹ˆλ‹€.
  • μ—¬κΈ°μ„œ, LWP(Light Weight Process) μΉΌλŸΌμ€ Thread IDλ₯Ό λ‚˜νƒ€λ‚΄λŠ” κ²ƒμž…λ‹ˆλ‹€.

2. μ‹€ν–‰ 쀑인 ν”„λ‘œμ„ΈμŠ€ μ ‘κ·Όν•˜κΈ°

2.1 싀행쀑인 ν”„λ‘œμ„ΈμŠ€μ— gdb 둜 μ ‘κ·Όν•˜κΈ°(Attaching 'gdb' on running process)

$ gdb -p <pid>
  • 만일 μ‹€ν–‰ κΆŒν•œμ΄ μΆ©λΆ„μΉ˜ μ•Šλ‹€λŠ” μ—λŸ¬ λ©”μ‹œμ§€κ°€ λ‚˜μ˜€λ©΄ sudo둜 μ‹€ν–‰ν•΄μ•Ό ν•©λ‹ˆλ‹€.

2.2 μŠ€λ ˆλ“œμ˜ μƒνƒœ 보기

(gdb) info threads
​​Id   Target Id         Frame
​​8    Thread 0x7f0ec8fcc700 (LWP 11050) "<process name>" 0x00007f0ecdb81dbd in nanosleep () from /lib/x86_64-linux-gnu/libc.so.6
​​7    Thread 0x7f0ec3fff700 (LWP 11051) "<process name>" 0x00007f0ecdbb69b3 in epoll_wait () from /lib/x86_64-linux-gnu/libc.so.6
​​6    Thread 0x7f0ec37fe700 (LWP 11052) "<process name>" 0x00007f0ecdbb69b3 in epoll_wait () from /lib/x86_64-linux-gnu/libc.so.6
​​5    Thread 0x7f0ec2ffd700 (LWP 11053) "<process name>" 0x00007f0ecdbb69b3 in epoll_wait () from /lib/x86_64-linux-gnu/libc.so.6
​​4    Thread 0x7f0ec27fc700 (LWP 11054) "<process name>" 0x00007f0ecee09d84 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
​​3    Thread 0x7f0ec1ffb700 (LWP 11055) "<process name>" 0x00007f0ecee09d84 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
​​2    Thread 0x7f0ec17fa700 (LWP 11056) "<process name>" 0x00007f0ecee09d84 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
* 1    Thread 0x7f0ecf67db00 (LWP 11048) "<process name>" 0x00007f0ecee09d84 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0

2.3 λͺ¨λ“  μŠ€λ ˆλ“œλ“€μ˜ 호좜 μŠ€νƒ 보기

(gdb) thread apply all bt

2.4 디버거가 λΆ™μ–΄ μžˆλŠ” μŠ€λ ˆλ“œ λ³€κ²½ν•˜κΈ°

(gdb) thread <tid>

2.5 μŠ€λ ˆλ“œμ˜ 호좜 μŠ€νƒ 보기

(gdb) bt

 

μ°Έκ³ 

  • [stackoverflow] how-to-attach-a-process-in-gdb: http://stackoverflow.com/questions/14370972/how-to-attach-a-process-in-gdb
  • [Tistory] gdb - μ‹€ν–‰ 쀑인 ν”„λ‘œμ„ΈμŠ€ & μŠ€λ ˆλ“œ 디버깅 ν•˜κΈ°: https://kukuta.tistory.com/202
  • gdb - breakpoint: http://kukuta.tistory.com/163
  • GDB Tutorial: http://kukuta.tistory.com/3
λ°˜μ‘ν˜•
μ €μž‘μžν‘œμ‹œ λΉ„μ˜λ¦¬ λ³€κ²½κΈˆμ§€ (μƒˆμ°½μ—΄λ¦Ό)

'Study: ComputerScience(CS) > CS: Linux' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[Linux] gdb둜 core dump 파일 λ””λ²„κΉ…ν•˜λŠ” 방법(feat. load core dump)  (1) 2022.11.10
[Linux] λ¦¬λˆ…μŠ€ μ‹œμŠ€ν…œ λ””μŠ€ν¬ νŒŒν‹°μ…˜ 및 κ΄€λ ¨ κ°œλ… 정리  (0) 2022.10.30
[Linux] λΌμš°νŒ…(Routing) μ΄λž€? λ¦¬λˆ…μŠ€ λΌμš°νŒ… μ„€μ • (feat. route)  (2) 2022.10.07
[Linux] NTP μ„œλ²„ μ‹œκ°„ 동기화  (0) 2022.09.28
[Linux] C++ μ»΄νŒŒμΌλŸ¬μ— λŒ€ν•˜μ—¬ (feat. clang/LLVM, clang-format, clang-tidy)  (0) 2022.08.29
    'Study: ComputerScience(CS)/CS: Linux' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • [Linux] gdb둜 core dump 파일 λ””λ²„κΉ…ν•˜λŠ” 방법(feat. load core dump)
    • [Linux] λ¦¬λˆ…μŠ€ μ‹œμŠ€ν…œ λ””μŠ€ν¬ νŒŒν‹°μ…˜ 및 κ΄€λ ¨ κ°œλ… 정리
    • [Linux] λΌμš°νŒ…(Routing) μ΄λž€? λ¦¬λˆ…μŠ€ λΌμš°νŒ… μ„€μ • (feat. route)
    • [Linux] NTP μ„œλ²„ μ‹œκ°„ 동기화
    DrawingProcess
    DrawingProcess
    과정을 그리자!

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”