<p>KSCrash๊ฐ€ ์ถฉ๋Œ์„ ํฌ์ฐฉํ•˜์ง€๋งŒ ์ถฉ๋Œ ์Šคํƒ์ด ๋น„์–ด ์žˆ์Šต๋‹ˆ๋‹ค.</p>

์— ๋งŒ๋“  2017๋…„ 07์›” 27์ผ  ยท  17์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: kstenerud/KSCrash

์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ผ๋ถ€ ์ถฉ๋Œ ๋ณด๊ณ ์„œ๋ฅผ ๋ฐ›์•˜์ง€๋งŒ ์ผ๋ถ€ ์ถฉ๋Œ ์Šคํƒ์ด ๋น„์–ด ์žˆ์Œ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.
2017-07-27 3 00 07

๋‹ค์Œ์€ ์›์‹œ json ์ถฉ๋Œ ๋ณด๊ณ ์„œ์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค.
1.txt
2.txt
3.txt

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‹ค์Œ ์ฃผ์— ์ด ๋ฌธ์ œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  17 ๋Œ“๊ธ€

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๋งŒ๋‚œ๋‹ค. ๋ˆ„๊ตฌ๋“ ์ง€ ๊ทธ๊ฒƒ์„ ๊ณ ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๋งŒ๋‚ฌ์ง€๋งŒ ์™œ?

๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•?

KSCrash๋Š” ๋””๋ฒ„๊น… ๊ธฐํ˜ธ(Xcode --> ๋นŒ๋“œ ์„ค์ • --> ์ŠคํŠธ๋ฆฝ ์Šคํƒ€์ผ --> ๋””๋ฒ„๊น… ๊ธฐํ˜ธ) ์—†์ด ๊ธฐํ˜ธ ํ…Œ์ด๋ธ”์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•  ๋•Œ ํ•จ์ˆ˜ kssymbolicator_symbolicate()์—์„œ ์ปค์„œ imageAddress๋ฅผ 0์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
ํ–‰์šด์„ ๋น•๋‹ˆ๋‹ค ...

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๋งŒ๋‚œ๋‹ค. ๋ˆ„๊ตฌ๋“ ์ง€ ๊ทธ๊ฒƒ์„ ๊ณ ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ œ๊ณต๋œ ์„ธ ๊ฐ€์ง€ ๋ณด๊ณ ์„œ ๋ฌธ์ œ ์ž‘์„ฑ์ž๋Š” ๋ชจ๋‘ C++ ์˜ˆ์™ธ์™€ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ญ์ถ”์  ์—†์ด ๋น„ C++ ์ถฉ๋Œ์„ ๋ฐ›์€ ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

@bamx23 #205๋Š” C++ ์ถฉ๋Œ์ด ์ถฉ๋Œ ์Šคํƒ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†๋Š” ์ด์œ ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์งˆ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๊นŒ? ์ž„๋ฒ ๋””๋“œ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ C++ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์—ฌ์ „ํžˆ ๋นˆ ์Šคํƒ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‹ค์Œ ์ฃผ์— ์ด ๋ฌธ์ œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

@bamx23 "์ง„๋‹จ": "๋„ ํฌ์ธํ„ฐ ์—ญ์ฐธ์กฐ๋ฅผ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค."
๋นˆ.txt

C++ ์˜ˆ์™ธ์— ๋Œ€ํ•œ ๋นˆ ์Šคํƒ์„ ๋งŒ๋‚˜๋ฉด ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ด์œ ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/kstenerud/KSCrash/issues/205

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. "๋‹ค์Œ ๋‹ฌ"์ด๋ผ๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
๋‚ด ์ƒ˜ํ”Œ ์•ฑ์—์„œ C++ ์ถฉ๋Œ ์‹œ KSCrash๋ฅผ ํ™•์ธํ–ˆ์ง€๋งŒ ์Šค๋ ˆ๋“œ๋Š” ์ •์ƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๋Š” ์˜ˆ์ œ ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@chzhij5 ํ˜•๋‹˜, ks ์–ด๋–ค ๋ฒ„์ „ ์“ฐ์„ธ์š”? 1.15.8?

์•ˆ๋…•! ์šฐ๋ฆฌ ํŒ€์—์„œ ๋ฌธ์ œ์™€ ๊ฐ€๋Šฅํ•œ ์†”๋ฃจ์…˜์„ ์กฐ์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค:

KSCrashMonitor_CPPException ์„ค์น˜ ๊ณผ์ •์—์„œ https://github.com/facebook/fishhook์— ์„ค๋ช… ๋ฐ ๊ตฌํ˜„๋œ "ํ•ดํ‚น"์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ•จ์ˆ˜์˜ ๋ชจ๋“  ํ˜ธ์ถœ์„ ํ›„ํ‚นํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ๋กœ๋“œ๋œ ๋ชจ๋“  ๋ฐ”์ด๋„ˆ๋ฆฌ์— ๋Œ€ํ•ด __cxa_throw ๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์•ฝํ•œ ๊ธฐํ˜ธ __cxa_throw ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ(ํ˜„์žฌ KSCrash๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ) ์ง€๊ธˆ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ด๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ฃผ๋ฌธ์€ [fishhooked one] -> [weak one] -> [libc++abi one] ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ์œ ์ผํ•œ ๋ฌธ์ œ๋Š” ์ผ๋ถ€ ๋ฐ”์ด๋„ˆ๋ฆฌ์— ๊ฐ•๋ ฅํ•œ __cxa_throw ๊ธฐํ˜ธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๋Ÿฐ ์ƒํ™ฉ์— ๋Œ€์ฒ˜ํ•  ๋ฐฉ๋ฒ•์€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@kstenerud , ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์„ธ์š”? stackoverflow ์—์„œ ๊ท€ํ•˜์˜ ๊ฒŒ์‹œ๋ฌผ์„ ์ฝ์—ˆ์œผ๋ฉฐ ์œ„์˜ ์•„์ด๋””์–ด๊ฐ€ ์ ์–ด๋„ ๋ถ€๋ถ„์ ์œผ๋กœ๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ณ„์†ํ•ด์„œ fishhook์ด KSCrash(๋˜๋Š” 'KSCrash/Recording/ImprovedCPPExceptionsHandling'๊ณผ ๊ฐ™์€ KSCrash ํ•˜์œ„ ์‚ฌ์–‘)์˜ ์ข…์†์„ฑ์ด ๋˜๋Š” ํ’€ ์š”์ฒญ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

[fishhooked one] -> [weak one] -> [libc++abi one] .

[weak one] ๊ฐ€ ํ˜ธ์ถœํ•˜์ง€ ์•Š์œผ๋ฉด @kstenerud ์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ๊ฒฝ์šฐ ์‹ค์ œ๋กœ [fishhooked one] ์—์„œ $# [libc++abi one] ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ข‹์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์ฃผ์— ์‚ฌ๋‚ด ์•ฑ์—์„œ ์‹œ๋„ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ ํ™๋ณด: #375

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰