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๋กœ core dump ํŒŒ์ผ ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐฉ๋ฒ•(feat. load core dump)

2022. 11. 10. 05:55
๋ฐ˜์‘ํ˜•
๐Ÿ’ก ๋ณธ ๋ฌธ์„œ๋Š” 'gdb๋กœ core dump ํŒŒ์ผ ๋ถ„์„ํ•˜๋Š” ๋ฐฉ๋ฒ•'์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋†“์€ ๊ธ€์ž…๋‹ˆ๋‹ค.
์—ด์‹ฌํžˆ ํ‚ค์›Œ๋†“์€ ํ”„๋กœ๊ทธ๋žจ์ด ์–ด๋А ๋‚  ๊ฐ‘์ž๊ธฐ ์ฃฝ๊ฑฐ๋‚˜ hang ๊ฑธ๋ฆฌ๋ฉฐ ๋ป—์–ด๋ฒ„๋ฆฌ๋Š” ๋ชจ์Šต์„ ๋ณผ ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์šด์˜ ๋กœ๊ทธ/์—๋Ÿฌ๋Š” ์ง์ ‘ logger๋ฅผ ๋งŒ๋“ค์–ด ๋”ฐ๋กœ ์ž˜ ์ €์žฅํ•ด๋‘๊ฒ ์ง€๋งŒ ๋ฏธ์ฒ˜ ๊ณ ๋ คํ•˜์ง€ ๋ชปํ•œ(์ƒ๊ฐ๋ณด๋‹ค lowํ•œ) ๋ถ€๋ถ„์—์„  ๋ฐ”๋กœ ์›์ธ์„ ํŒŒ์•…ํ•˜๊ธฐ๊ฐ€ ํž˜๋“ญ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ core dump๋ฅผ ๋‚จ๊ธฐ๊ฒŒ ์„ค์ •ํ•œ๋‹ค๋ฉด, ํ”„๋กœ๊ทธ๋žจ์ด ๋Œ์—ฐ์‚ฌํ–ˆ์„ ๋•Œ ํŠน์ • ์‹œ์ ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ๋ฅผ ์•Œ ์ˆ˜ ์žˆ์–ด ์ด์ŠˆํŒŒ์•…์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ์„ค์ • ๋ฐฉ๋ฒ•๊ณผ gdb๋ฅผ ์ด์šฉํ•œ ๋””๋ฒ„๊น… ๋ฐฉ๋ฒ•๋„ ์ •๋ฆฌํ•ด๋‘์—ˆ์œผ๋‹ˆ ์ฐธ๊ณ  ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

1. core ํŒŒ์ผ ๋‹ค๋ฃจ๊ธฐ

core dump ํŒŒ์ผ์€ ELF ํ˜•์‹(์‹คํ–‰, ์˜ค๋ธŒ์ ํŠธ, ๊ณต์œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, '์ฝ”์–ด๋คํ”„'๋ฅผ ์œ„ํ•œ ํ‘œ์ค€ ํŒŒ์ผ ํ˜•์‹)์œผ๋กœ x86 ๊ธฐ๋ฐ˜ ์œ ๋‹‰์Šค ์‹œ์Šคํ…œ๋“ค์˜ ํ‘œ์ค€ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ ํ˜•์‹์ž…๋‹ˆ๋‹ค.

  • ์ž์„ธํ•œ ๋‚ด์šฉ์€ [Linux] Executable and Linkable Format(ELF): ์‹คํ–‰ ๋ฐ ๋งํ‚น ํŒŒ์ผ ํฌ๋งท ๋ฅผ ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. 

1.1 core ํŒŒ์ผ ์ƒ์„ฑํ•˜๊ธฐ (์žฌ๋ถ€ํŒ… ์‹œ ์ดˆ๊ธฐํ™”)

1) ๋””๋ฒ„๊น… core ํŒŒ์ผ ์ƒ์„ฑํ•˜๊ณ  ์‹ถ์€ ์‹คํ–‰ ํŒŒ์ผ์ด ์žˆ๋Š” ํด๋”๋กœ ์ด๋™ํ•˜๊ธฐ

2) ulimit -a ๋กœ core file size ํ™•์ธํ•˜๊ธฐ

$ ulimit -a 
... 
-c: core file size (blocks) 	0 
...

3) core file size ๊ฐ€ 0์œผ๋กœ ๋˜์–ด ์žˆ๋‹ค๋ฉด? unlimited๋กœ ์„ค์ •ํ•˜๊ธฐ(kb ๋‹จ์œ„์˜ size๋ฅผ ์ง€์ •ํ•ด๋‘์–ด๋„ ๋ฉ๋‹ˆ๋‹ค)

$ ulimit -c unlimited

4) ๋‹ค์‹œ ulimit -a ๋กœ core file size ํ™•์ธํ•˜๊ธฐ

$ ulimit -a 
... 
-c: core file size (blocks) 	unlimited 
...

1.2 core ํŒŒ์ผ ์ƒ์„ฑํ•˜๊ธฐ (์˜๊ตฌ์ )

1) /etc/security/limits.conf ํŒŒ์ผ์— ์„ค์ •ํ•˜๊ธฐ (root soft core unlimited ์ถ”๊ฐ€ํ•˜๊ธฐ)

$ nano /etc/security/limits.conf

2)  /etc/security/limits.conf ํŒŒ์ผ์— ์„ค์ • ํ™•์ธํ•˜๊ธฐ

$ cat  /etc/security/limits.conf  | grep core | grep -v ^#
root             soft    core            unlimited

3) /etc/profile ํŒŒ์ผ์— core file size๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ์„ค์ • ์ฃผ์„์ฒ˜๋ฆฌํ•˜๊ธฐ

$ nano /etc/profile
...
#ulimit -S -c 0 > /dev/null 2>&1
...

4) /etc/profile ํŒŒ์ผ ํ™•์ธํ•˜๊ธฐ

$ cat /etc/profile | grep ulimit
#ulimit -S -c 0 > /dev/null 2>&1

1.3 core dump ํŒŒ์ผ ํ™•์ธํ•˜๊ธฐ

๋งŒ์•ฝ ํ”„๋กœ๊ทธ๋žจ์ด ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ๋Œ๊ณ  ์žˆ๋Š” ํ™˜๊ฒฝ์ด๋ผ๋ฉด ํŠน์ • dump๊ฐ€ ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์ด ๋งŒ๋“  ๊ฒƒ์ธ์ง€ ํ™•์ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

file <core dump file>
  • /proc/sys/kekrnel/core_pattern ์—์„œ ์ •์˜๋œ ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค.
    • %p: pid
    • %u: uid
    • %g: gid
    • %s: signal number
    • %t: dump time (unix)
    • %h: host name
    • %e: process

2. gdb๋กœ core dump ํŒŒ์ผ ๋ถ„์„ํ•˜๊ธฐ

์•„๋ž˜์™€ ๊ฐ™์ด gdb๋กœ ์ ‘๊ทผํ•˜์—ฌ core dump ํŒŒ์ผ๋กœ๋ถ€ํ„ฐ ์ฝœ์Šคํ…์„ ์ถ”์ ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์ด ๋น„์ •์ƒ ์ข…๋ฃŒ๋œ ์›์ธ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

gdb <process> <core dump file>

2.1 call stack & backtrace

(gdb) bt
(gdb) bt full
  • bt๋Š” core dump ๋ฐœ์ƒ ์ง์ „์˜ call stack์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, bt full์€ ์ „์ฒด call stack ์ •๋ณด๋ฅผ ์ž์„ธํžˆ ํ™•์ธ๊ฐ€๋Šฅ
  • stack์€ ์‹คํ–‰์ค‘์ธ ํ•จ์ˆ˜ ์ •๋ณด๋ฅผ ํ‘œ๊ธฐํ•˜๋ฉฐ ์ด๋ฅผ frame์ด๋ผ ํ•จ

2.2 stack ์†Œ์Šค ์ฝ”๋“œ ํ™•์ธ

(gdb) list

2.3 ์˜์‹ฌ๋˜๋Š” stack frame ๋ถ„์„

(gdb) f <frame name>
(gdb) info frame
(gdb) info frame <frame name>
  • info frame์€ ๊ฐ frame์˜ ๋ณด๋‹ค ์ƒ์„ธํ•œ ์ •๋ณด ์ œ๊ณต
    • stack frame at 0x: ํ•ด๋‹น ํ•จ์ˆ˜์˜ sp
    • called by frame at 0x: ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ ํ•จ์ˆ˜์˜ sp (e.g. main)
    • Arglist at 0x: ํ•ด๋‹น ํ•จ์ˆ˜๊ฐ€ ํ˜ธํ’€ํ•˜๋Š” ํ•จ์ˆ˜์˜ bp
    • args: ์ธ์ž ์ •๋ณด
    • Saved registers: rip, ebp...

2.4 ํ•ด๋‹น stack์˜ argument/local value ํ™•์ธ

(gdb) info arg
(gdb) info local
  • info frame ๋ณด๋‹ค ๊ฐ„๊ฒฐํ•˜์ง€๋งŒ ์ธ๊ฐ„์นœํ™”์ 
    • arg: stack์˜ argment ํ™•์ธ
    • local: stack์˜ ์ˆ˜ํ–‰ ๋‹น์‹œ ๋ณ€์ˆ˜ ๊ฐ’ ํ™•์ธ

 

์ฐธ๊ณ 

  • [gdb] stack frame ํ•ด์„ํ•˜๊ธฐ: http://dooeui.blogspot.com/2013/09/stack-frame.html
  • [System] core dump ๋ถ„์„์„ ์œ„ํ•œ gdb ์‚ฌ์šฉ๋ฒ• ๊ฐ„๋‹จ ์ •๋ฆฌ: https://incredible-larva.tistory.com/entry/core-dump-%EB%B6%84%EC%84%9D%EC%9D%84-%EC%9C%84%ED%95%9C-gdb-%EA%B0%84%EB%8B%A8-%EC%A0%95%EB%A6%AC
  • [Linux] ulimit๋กœ core file ์ƒ์„ฑ ์„ค์ •: https://sh-safer.tistory.com/173

 

๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Study: ComputerScience(CS) > CS: Linux' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Linux] gdb ํ™œ์šฉํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•: executable, process, core dump file  (0) 2022.12.28
[Linux] ๋ฆฌ๋ˆ…์Šค ํฌ๋ก ํƒญ(Linux Crontab) ์‚ฌ์šฉ๋ฒ•: ์ž‘์—… ์Šค์ผ€์ค„๋Ÿฌ  (0) 2022.12.14
[Linux] ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ ๋””์Šคํฌ ํŒŒํ‹ฐ์…˜ ๋ฐ ๊ด€๋ จ ๊ฐœ๋… ์ •๋ฆฌ  (0) 2022.10.30
[Linux] gdb๋กœ process/threads ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐฉ๋ฒ•(feat. ์ข€๋น„ ํ”„๋กœ์„ธ์Šค)  (0) 2022.10.25
[Linux] ๋ผ์šฐํŒ…(Routing) ์ด๋ž€? ๋ฆฌ๋ˆ…์Šค ๋ผ์šฐํŒ… ์„ค์ • (feat. route)  (2) 2022.10.07
    'Study: ComputerScience(CS)/CS: Linux' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Linux] gdb ํ™œ์šฉํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•: executable, process, core dump file
    • [Linux] ๋ฆฌ๋ˆ…์Šค ํฌ๋ก ํƒญ(Linux Crontab) ์‚ฌ์šฉ๋ฒ•: ์ž‘์—… ์Šค์ผ€์ค„๋Ÿฌ
    • [Linux] ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ ๋””์Šคํฌ ํŒŒํ‹ฐ์…˜ ๋ฐ ๊ด€๋ จ ๊ฐœ๋… ์ •๋ฆฌ
    • [Linux] gdb๋กœ process/threads ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐฉ๋ฒ•(feat. ์ข€๋น„ ํ”„๋กœ์„ธ์Šค)
    DrawingProcess
    DrawingProcess
    ๊ณผ์ •์„ ๊ทธ๋ฆฌ์ž!

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”