DrawingProcess
λ“œν”„ DrawingProcess
DrawingProcess
전체 방문자
였늘
μ–΄μ œ
Β«   2025/06   Β»
일 μ›” ν™” 수 λͺ© 금 ν† 
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
  • λΆ„λ₯˜ 전체보기 (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

[Linux] gdb ν™œμš©ν•˜λŠ” λ‹€μ–‘ν•œ 방법: executable, process, core dump file
Study: ComputerScience(CS)/CS: Linux

[Linux] gdb ν™œμš©ν•˜λŠ” λ‹€μ–‘ν•œ 방법: executable, process, core dump file

2022. 12. 28. 15:11
λ°˜μ‘ν˜•
πŸ’‘ λ³Έ λ¬Έμ„œλŠ” 'gdb ν™œμš©ν•˜λŠ” λ‹€μ–‘ν•œ λ°©λ²•'에 λŒ€ν•΄ 정리해놓은 κΈ€μž…λ‹ˆλ‹€.
C / C++ μ½”λ“œλ₯Ό 디버깅 툴 쀑 κ°€μž₯ 유λͺ…ν•œ gdb와 이λ₯Ό μ‚¬μš©ν•΄μ•Όν•  λ•Œμ— λŒ€ν•΄ μ •λ¦¬ν•˜μ˜€μœΌλ‹ˆ μ°Έκ³ ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€. μΆ”κ°€λ‘œ ν•˜κΈ°μ— μž‘μ„±ν•œ 링크λ₯Ό 톡해 이λ₯Ό ν™œμš©ν•˜μ—¬ executable, process, core dump file을 λ””λ²„κΉ…ν•˜μ—¬ λΆ„μ„ν•˜λŠ” 방법에 λŒ€ν•œ 글도 λ§ν¬ν•˜μ˜€μœΌλ‹ˆ μ°Έκ³ ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€.

1. GDBλž€?

쒋은 λ””λ²„κ±°λŠ” 문제λ₯Ό ν•΄κ²°ν•˜κ³ , ν”„λ‘œκ·Έλž¨μ„ μ’€ 더 μ‰½κ²Œ κ°œλ°œν•˜κ³  리버싱을 ν•˜λŠ” λ“± λ‹€μ–‘ν•œ λ°©μ•ˆμ—μ„œ κ°œλ°œμžμ—κ²Œ 도움을 μ£ΌλŠ” 도ꡬ μž…λ‹ˆλ‹€. λ§Žμ€ ν”Œλž«νΌμ—μ„œ 그에 맞좰 쒋은 디버거듀이 μ‘΄μž¬ν•˜κ³  κ°œλ°œμžλ“€μ€ μžμ‹ μ—κ²Œ λ§žλŠ” 디버거λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κ·Έ 쀑 GDB(The GNU Debugger)λŠ” λ§Žμ€ ν”Œλž«νΌ, x86, x86-64, arm, aarch64, mips, SPARCλ“± λ‹€μ–‘ν•œ μ•„ν‚€ν…μ²˜ μ—μ„œ λ™μž‘ν•˜λŠ” UNIX μ‹œμŠ€ν…œμ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” λ””λ²„κ±°λ‘œ, C / C++ 둜 μž‘μ„±λœ ν”„λ‘œκ·Έλž¨μ—μ„œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

2. μ–Έμž¬ GDB μ‚¬μš©?

처음 GDBλ₯Ό κ³΅λΆ€ν•˜μ‹œλŠ” 뢄듀이 많이 μ–΄λ €μ›Œ ν•˜μ‹œλŠ”κ²Œ μ–Έμ œ GDBλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•˜λŠ”μ§€ μž…λ‹ˆλ‹€. λ””λ²„κ±°λŠ” μ—¬λŸ¬λΆ„λ“€μ΄ μž‘μ„±ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ—μ„œ λ°œμƒν•˜λŠ” 문제λ₯Ό ν•΄κ²°ν•˜λŠ”λ° 맀우 도움을 μ£Όμ§€λ§Œ μ œλŒ€λ‘œ ν™œμš©ν•˜μ§€ λͺ»ν•œλ‹€λ©΄ μ•„λ¬΄λŸ° μ“Έλͺ¨κ°€ μ—†μ–΄μ§ˆν…Œλ‹ˆ κ°„λ‹¨ν•˜κ²Œλ‚˜λ§ˆ μ–Έμ œ μ‚¬μš©ν•˜λ©΄ 쒋을 μ§€ μ •λ¦¬ν•΄λ³΄κ³ μž ν•©λ‹ˆλ‹€.

  • νŠΉμ • μ‹œμ , ν¬μΈνŠΈμ—μ„œ 디버깅 : λ””λ²„κΉ…ν•˜κΈΈ μ›ν•˜λŠ” μ‹œμ (νŠΉμ • ν•¨μˆ˜ λ˜λŠ” 쑰건)μ—μ„œ μ—¬λŸ¬λΆ„λ“€μ΄ μ›ν•˜λŠ” λͺ¨λ“  정보λ₯Ό 얻을 수 μžˆμŠ΅λ‹ˆλ‹€.
  • λ¬Έμ œκ°€ μ‰½κ²Œ μž¬ν˜„λ¨ : 이슈 ν•΄κ²° μ‹œ μ‰½κ²Œ μž¬ν˜„λ˜λŠ” 것 만큼 쒋은 건 μ—†μŠ΅λ‹ˆλ‹€. GDBλ₯Ό μ΄μš©ν•˜λ©΄ κ·Έ μ‹œμ μ—μ„œ 문제의 원인을 λ”μš± λΉ λ₯΄κ³  μ‰½κ²Œ ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 문제 상황이 μ˜ˆμΈ‘ν•  수 μžˆμ„ λ•Œ : μ—¬λŸ¬λΆ„λ“€μ΄ λ¬Έμ œκ°€ λ˜λŠ” 상황을 μ•ˆλ‹€λ©΄, breakpointλ₯Ό μ΄μš©ν•΄μ„œ λ¬Έμ œκ°€ λ°œμƒν•˜λŠ” 상황에 λŒ€ν•΄ 디버깅 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

이 외에도 λ‹€μ–‘ν•œ λ¬Έμ œμ—μ„œ μ‚¬μš©κ°€λŠ₯ν•©λ‹ˆλ‹€. μ—¬λŸ¬κ°€μ§€ κΈ°λŠ₯듀을 μ—¬λŸ¬ μ˜ˆμ‹œλ₯Ό 톡해 μ„€λͺ…ν•˜λ©° 이해할 수 μžˆλ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.
gdbλ₯Ό μ΄μš©ν•΄ 디버깅 ν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. 그럼 μ–΄λ–»κ²Œ μ—¬λŸ¬λΆ„λ“€μ˜ ν”„λ‘œκ·Έλž¨μ— gdbλ₯Ό μ μš©ν•  수 μžˆλŠ”μ§€ μ‚΄νŽ΄λ³΄μ£ . ν”„λ‘œκ·Έλž¨μ— gdbλ₯Ό μ΄μš©ν•˜λŠ” 방법은 3κ°€μ§€ μž…λ‹ˆλ‹€.

  • gdbλ₯Ό μ΄μš©ν•΄μ„œ 직접 ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜μž
  • 싀행쀑인 ν”„λ‘œκ·Έλž¨μ— gdbλ₯Ό λΆ™μ—¬ μ‚¬μš©ν•˜μž
  • core file을 μ‚¬μš©ν•΄μ„œ λΆ„μ„ν•˜μž

μœ„ λ‚΄μš©μ„ μ•„λž˜μ²˜λŸΌ ν‘œν˜„ν•  μˆ˜ μžˆμ„ κ²ƒ κ°™μŠ΅λ‹ˆλ‹€.

gdbλ₯Ό run, attach, load의 방식을 톡해 뢄석이 κ°€λŠ”ν•˜λ©° 직접 ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜λ©° λΆ„μ„ν•˜λŠ” 2κ°€μ§€ 방법과 사후 λ€ν”„νŒŒμΌ(core file)을 μ΄μš©ν•œ 방법도 μžˆμŠ΅λ‹ˆλ‹€. load 방식은 개발 ν›„ 검증 λ˜λŠ” 릴리즈 ν›„ λ°œμƒν•˜λŠ” 문제λ₯Ό report 받을 λ•Œ μ‚¬μš©ν•˜λ©΄ 직접 문제λ₯Ό μž¬ν˜„ν•΄λ³΄μ§€ μ•Šμ•„λ„ 문제의 원인을 찾을 수 μžˆμŠ΅λ‹ˆλ‹€.

λ¨Όμ € run 방식과 attach 방식을 톡해 gdb의 κΈ°λŠ₯듀을 μ‚΄νŽ΄λ³΄κ³ , μΆ”ν›„ load 방식에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

3. 마무리

λ³Έ ν¬μŠ€νŒ…μ—μ„œλŠ” GDBλ₯Ό μ‚¬μš©ν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄μ•˜μŠ΅λ‹ˆλ‹€. λ‹€μŒ ν¬μŠ€νŒ…μ—μ„œλŠ” 각각의 μ‚¬μš©ν•˜λŠ” 방법 별 μ„ΈλΆ€ μ˜ˆμ‹œλ₯Ό λ“€μ–΄ μ„€λͺ…ν•˜λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

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

μ°Έκ³ 

  • [Blog] [gdb] The GNU Debugger : 1. Introduction: https://sonseungha.tistory.com/452
λ°˜μ‘ν˜•
μ €μž‘μžν‘œμ‹œ λΉ„μ˜λ¦¬ λ³€κ²½κΈˆμ§€ (μƒˆμ°½μ—΄λ¦Ό)

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

[Linux] chmod 파일 κΆŒν•œ 및 특수 κΆŒν•œ μ„€μ •  (0) 2023.01.26
[Linux] gdb둜 λ””λ²„κΉ…ν•˜λŠ” 방법(feat. run/attach executable)  (0) 2022.12.29
[Linux] λ¦¬λˆ…μŠ€ 크둠탭(Linux Crontab) μ‚¬μš©λ²•: μž‘μ—… μŠ€μΌ€μ€„λŸ¬  (0) 2022.12.14
[Linux] gdb둜 core dump 파일 λ””λ²„κΉ…ν•˜λŠ” 방법(feat. load core dump)  (1) 2022.11.10
[Linux] λ¦¬λˆ…μŠ€ μ‹œμŠ€ν…œ λ””μŠ€ν¬ νŒŒν‹°μ…˜ 및 κ΄€λ ¨ κ°œλ… 정리  (0) 2022.10.30
    'Study: ComputerScience(CS)/CS: Linux' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • [Linux] chmod 파일 κΆŒν•œ 및 특수 κΆŒν•œ μ„€μ •
    • [Linux] gdb둜 λ””λ²„κΉ…ν•˜λŠ” 방법(feat. run/attach executable)
    • [Linux] λ¦¬λˆ…μŠ€ 크둠탭(Linux Crontab) μ‚¬μš©λ²•: μž‘μ—… μŠ€μΌ€μ€„λŸ¬
    • [Linux] gdb둜 core dump 파일 λ””λ²„κΉ…ν•˜λŠ” 방법(feat. load core dump)
    DrawingProcess
    DrawingProcess
    과정을 그리자!

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