Runtime: [์งˆ๋ฌธ] MethodDesc์™€ ์ง„์ž…์  ๊ฐ„์˜ 1:1 ๋งคํ•‘

์— ๋งŒ๋“  2017๋…„ 04์›” 05์ผ  ยท  1๋…ผํ‰  ยท  ์ถœ์ฒ˜: dotnet/runtime

์—ฌ๋ณด์„ธ์š”.

"The Book of the Runtime"์˜ "Method Descriptor" ์žฅ์—์„œ ๋งํ–ˆ๋“ฏ์ด ๋Ÿฐํƒ€์ž„์—๋Š” MethodDesc์™€ ์ง„์ž…์  ๊ฐ„์˜ 1:1 ๋งคํ•‘์— ์˜์กดํ•˜๋Š” ์—ฌ๋Ÿฌ ์œ„์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ชจ๋“  ๋ฉ”์†Œ๋“œ์— ๋Œ€ํ•ด ์Šฌ๋กฏ๊ณผ ์ง„์ž…์ ์ด ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค๋Š” ์š”๊ตฌ ์‚ฌํ•ญ์œผ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ด๋Ÿฌํ•œ ์žฅ์†Œ๊ฐ€ ์–ด๋””์— ์žˆ์œผ๋ฉฐ ์ •ํ™•ํžˆ 1:1 ๋งคํ•‘์ด ํ•„์š”ํ•œ ์ด์œ ๋ฅผ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@Dmitri-Botcharnikov @ruben-ayrapetyan

question

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

ํ•˜๋‚˜์˜ methoddesc๋Š” ์—ฌ๋Ÿฌ ์ง„์ž…์ ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ฐ์„ ๋‹ค์‹œ ์ผ์น˜ํ•˜๋Š” MethodDesc์— ๋งคํ•‘ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ง„์ž…์  -> MethodDesc ๋งคํ•‘์˜ ํ•ต์‹ฌ ๋ฐฉ๋ฒ•์€ MethodTable::GetMethodDescForSlotAddress ์ž…๋‹ˆ๋‹ค.

MethodDesc -> ํ˜„์žฌ ์ง„์ž…์  ๋งคํ•‘์˜ ํ•ต์‹ฌ ๋ฐฉ๋ฒ•์€ MethodDesc::GetMethodEntryPoint ์ž…๋‹ˆ๋‹ค.

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

ํ•˜๋‚˜์˜ methoddesc๋Š” ์—ฌ๋Ÿฌ ์ง„์ž…์ ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ฐ์„ ๋‹ค์‹œ ์ผ์น˜ํ•˜๋Š” MethodDesc์— ๋งคํ•‘ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ง„์ž…์  -> MethodDesc ๋งคํ•‘์˜ ํ•ต์‹ฌ ๋ฐฉ๋ฒ•์€ MethodTable::GetMethodDescForSlotAddress ์ž…๋‹ˆ๋‹ค.

MethodDesc -> ํ˜„์žฌ ์ง„์ž…์  ๋งคํ•‘์˜ ํ•ต์‹ฌ ๋ฐฉ๋ฒ•์€ MethodDesc::GetMethodEntryPoint ์ž…๋‹ˆ๋‹ค.

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