{"id":199490,"date":"2013-10-29T16:15:02","date_gmt":"2013-10-29T12:15:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=199490"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=199490","title":{"rendered":"<span class=\"post_title\">\u0421\u043e\u0437\u0434\u0430\u0435\u043c ELF-\u0444\u0430\u0439\u043b \u0441 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 (DWARF) \u0432\u0440\u0443\u0447\u043d\u0443\u044e (\u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 ARM)<\/span>"},"content":{"rendered":"<div class=\"content html_format\">\n<h4>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h4>\n<p>   \u0421 \u043d\u0435\u0434\u0430\u0432\u043d\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u044f \u0443\u0432\u043b\u0435\u043a\u0441\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c\u0438. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 AVR, \u0437\u0430\u0442\u0435\u043c ARM. \u0414\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u0432\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430: \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440 \u0438 \u0421. \u041e\u0434\u043d\u0430\u043a\u043e, \u044f \u0444\u0430\u043d\u0430\u0442 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f <a href=\"http:\/\/ru.wikipedia.org\/wiki\/%D0%A4%D0%BE%D1%80%D1%82_%28%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%29\">\u0424\u043e\u0440\u0442<\/a> \u0438 \u0437\u0430\u043d\u044f\u043b\u0441\u044f \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0435\u0433\u043e \u043d\u0430 \u044d\u0442\u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u044b. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0438 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043d\u043e \u043d\u0438 \u0432 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u043d\u0438\u0445 \u043d\u0435 \u0431\u044b\u043b\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u044f \u0445\u043e\u0442\u0435\u043b: \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e gdb. \u0418 \u044f \u0437\u0430\u0434\u0430\u043b\u0441\u044f \u0446\u0435\u043b\u044c\u044e \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0431\u0435\u043b (\u043f\u043e\u043a\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f ARM). \u0412 \u043c\u043e\u0435\u043c \u0440\u0430\u0441\u043f\u043e\u0440\u044f\u0436\u0435\u043d\u0438\u0438 \u0431\u044b\u043b\u0430 \u043f\u043b\u0430\u0442\u0430 <a href=\"http:\/\/www.st.com\/web\/en\/catalog\/tools\/FM116\/SC959\/SS1532\/PF250863\">stm32vldiscovery<\/a> \u0441 32-\u0431\u0438\u0442\u043d\u044b\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u043c ARM Cortex-M3, 128\u043a\u0411 flash \u0438 8 \u043a\u0411 RAM, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0438 \u043d\u0430\u0447\u0430\u043b \u0441 \u043d\u0435\u0435. <br \/>   \u041f\u0438\u0441\u0430\u043b \u044f \u043a\u0440\u043e\u0441\u0441-\u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0442\u043e\u0440 \u0424\u043e\u0440\u0442\u0430 \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u043d\u0430 \u0424\u043e\u0440\u0442\u0435, \u0438 \u043a\u043e\u0434\u0430 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442, \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e\u0442 \u044f\u0437\u044b\u043a \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u044d\u043a\u0437\u043e\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c. \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0443\u0441\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u043c\u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f\u043c\u0438. \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438 \u043f\u043e \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u0443 \u043f\u043e\u0447\u0442\u0438 \u043d\u0435\u0442, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u043b\u0438\u0441\u044c \u043c\u043d\u043e\u0439 \u043f\u0443\u0442\u0435\u043c \u043f\u0440\u043e\u0431 \u0438 \u043e\u0448\u0438\u0431\u043e\u043a, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u2014 \u043f\u0443\u0442\u0435\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 gcc. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u043d\u0435 \u043a\u0430\u0441\u0430\u044f\u0441\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, relocation-\u043e\u0432 \u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u0432\u0435\u0449\u0435\u0439. \u0422\u0435\u043c\u0430 \u043e\u0447\u0435\u043d\u044c \u043e\u0431\u0448\u0438\u0440\u043d\u0430 \u0438, \u043f\u0440\u0438\u0437\u043d\u0430\u044e\u0441\u044c, \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0441\u044f \u044f \u0441 \u043d\u0435\u0439 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 30, \u0447\u0442\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u044b\u043c. <br \/>  <a name=\"habracut\"><\/a><br \/>   \u041a\u043e\u0433\u043e \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442, \u043c\u043e\u0436\u0435\u0442 \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043a\u043e\u0434 <a href=\"http:\/\/oco.org.ua\/m3forth\/\">\u0437\u0434\u0435\u0441\u044c<\/a>. <\/p>\n<h4>\u041e\u0431\u0437\u043e\u0440 ELF<\/h4>\n<p>   \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u044e\u0442 \u0432\u0430\u0448\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0432 \u0444\u0430\u0439\u043b <a href=\"http:\/\/ru.wikipedia.org\/wiki\/Executable_and_Linkable_Format\">ELF (Executable and Linkable Format)<\/a> \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. \u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"http:\/\/www.skyfree.org\/linux\/references\/ELF_Format.pdf\">\u0437\u0434\u0435\u0441\u044c<\/a>. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u0438\u043c\u0435\u044e\u0442\u0441\u044f \u0441\u0432\u043e\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <a href=\"http:\/\/infocenter.arm.com\/help\/topic\/com.arm.doc.ihi0044b\/IHI0044B_aaelf.pdf\">\u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 ARM<\/a>. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0440\u0430\u0442\u043a\u043e \u044d\u0442\u043e\u0442 \u0444\u043e\u0440\u043c\u0430\u0442. <br \/>   \u0418\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b \u0444\u043e\u0440\u043c\u0430\u0442\u0430 ELF \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0442\u0430\u043a\u0438\u0445 \u0447\u0430\u0441\u0442\u0435\u0439:    <\/p>\n<h5>1. \u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a (ELF Header)<\/h5>\n<p>   \u0421\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u0431\u0449\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0444\u0430\u0439\u043b\u0435 \u0438 \u0435\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438.    <\/p>\n<h5>2. \u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b (Program Header Table)<\/h5>\n<p>   \u042d\u0442\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u0441\u0435\u043a\u0446\u0438\u0439 \u0444\u0430\u0439\u043b\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u043c \u043f\u0430\u043c\u044f\u0442\u0438, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0443, \u0432 \u043a\u0430\u043a\u0443\u044e \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0435\u043a\u0446\u0438\u044e.    <\/p>\n<h5>3. \u0421\u0435\u043a\u0446\u0438\u0438<\/h5>\n<p>   \u0421\u0435\u043a\u0446\u0438\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0432\u0441\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432 \u0444\u0430\u0439\u043b\u0435 (\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430, \u0434\u0430\u043d\u043d\u044b\u0435, \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0438 \u0442.\u0434) <br \/>   \u0423 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0435\u043a\u0446\u0438\u0438 \u0435\u0441\u0442\u044c \u0442\u0438\u043f, \u0438\u043c\u044f \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b. \u0412 \u0441\u0435\u043a\u0446\u0438\u0438 &quot;.text&quot; \u043e\u0431\u044b\u0447\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043a\u043e\u0434, \u0432 &quot;.symtab&quot; \u2014 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b (\u0438\u043c\u0435\u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432, \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445), \u0432 &quot;.strtab&quot; \u2014 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u0442\u0440\u043e\u043a, \u0432 \u0441\u0435\u043a\u0446\u0438\u044f\u0445 \u0441 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043e\u043c &quot;.debug_&quot; \u2014 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0438 \u0442.\u0434. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0432 \u0444\u0430\u0439\u043b\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u0443\u0441\u0442\u0430\u044f \u0441\u0435\u043a\u0446\u0438\u044f \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c 0. <\/p>\n<h5>4. \u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0441\u0435\u043a\u0446\u0438\u0439 (Section Header Table)<\/h5>\n<p>   \u042d\u0442\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u043c\u0430\u0441\u0441\u0438\u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 \u0441\u0435\u043a\u0446\u0438\u0439. <br \/>   \u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0444\u043e\u0440\u043c\u0430\u0442 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 ELF.<\/p>\n<h4>\u041e\u0431\u0437\u043e\u0440 DWARF<\/h4>\n<p>   <a href=\"http:\/\/en.wikipedia.org\/wiki\/DWARF\">DWARF<\/a> \u2014 \u044d\u0442\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438. <a href=\"http:\/\/dwarfstd.org\/doc\/DWARF4.pdf\">\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442<\/a> \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u043d\u0430 <a href=\"http:\/\/dwarfstd.org\/\">\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u0441\u0430\u0439\u0442\u0435<\/a>. \u0422\u0430\u043c \u0436\u0435 \u043b\u0435\u0436\u0438\u0442 \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043a\u0440\u0430\u0442\u043a\u043e\u0435 \u043e\u0431\u043e\u0437\u0440\u0435\u043d\u0438\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0430:&nbsp;<a href=\"http:\/\/dwarfstd.org\/doc\/Debugging%20using%20DWARF-2012.pdf\">Introduction to the DWARF Debugging Format<\/a> (Michael J. Eager). <br \/>   \u0417\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u043d\u0430 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f? \u041e\u043d\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442:    <\/p>\n<ul>\n<li>\u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0442\u043e\u0447\u043a\u0438 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0430 (breakpoints) \u043d\u0435 \u043d\u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u0434\u0440\u0435\u0441, \u0430 \u043d\u0430 \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0438\u043b\u0438 \u043d\u0430 \u0438\u043c\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/li>\n<li>\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0438 \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0445 \u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/li>\n<li>\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0441\u0442\u0435\u043a \u0432\u044b\u0437\u043e\u0432\u043e\u0432 (backtrace)<\/li>\n<li>\u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u043e \u043d\u0435 \u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u0430, \u0430 \u043f\u043e \u0441\u0442\u0440\u043e\u043a\u0430\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430<\/li>\n<\/ul>\n<p>   \u042d\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u0434\u0440\u0435\u0432\u043e\u0432\u0438\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b. \u041a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0434\u0435\u0440\u0435\u0432\u0430 \u0438\u043c\u0435\u0435\u0442 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f, \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432 \u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f DIE (Debugging Information Entry). \u041a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0438\u043c\u0435\u0435\u0442 \u0441\u0432\u043e\u0439 \u0442\u044d\u0433 (\u0442\u0438\u043f) \u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 (\u0441\u0432\u043e\u0439\u0441\u0442\u0432), \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u0443\u0437\u0435\u043b. \u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432\u0441\u0435, \u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u043b\u0438 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u0443\u0437\u043b\u044b. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u0445\u0440\u0430\u043d\u044f\u0449\u0430\u044f\u0441\u044f \u0432\u043d\u0435 \u0434\u0435\u0440\u0435\u0432\u0430. <br \/>   \u0423\u0437\u043b\u044b \u0434\u0435\u043b\u044f\u0442\u0441\u044f \u043d\u0430 \u0434\u0432\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0442\u0438\u043f\u0430: \u0443\u0437\u043b\u044b, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0438 \u0443\u0437\u043b\u044b, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u043a\u043e\u0434.    <\/p>\n<h5>\u0423\u0437\u043b\u044b, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435:<\/h5>\n<p>   <\/p>\n<ol>\n<li>\u0422\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445: <br \/> \n<ul>\n<li>\u0411\u0430\u0437\u043e\u0432\u044b\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445 (\u0443\u0437\u0435\u043b \u0441 \u0442\u0438\u043f\u043e\u043c DW_TAG_base_type), \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0442\u0438\u043f int \u0432 C.<\/li>\n<li>\u0421\u043e\u0441\u0442\u0430\u0432\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445 (\u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u0438 \u0442.\u0434.)<\/li>\n<li>\u041c\u0430\u0441\u0441\u0438\u0432\u044b<\/li>\n<li>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u043a\u043b\u0430\u0441\u0441\u044b, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f, \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b<\/li>\n<\/ul>\n<p>   <\/li>\n<li>\u041e\u0431\u044a\u0435\u043a\u0442\u044b \u0434\u0430\u043d\u043d\u044b\u0445: <br \/> \n<ul>\n<li>\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b<\/li>\n<li>\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0439<\/li>\n<li>\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435<\/li>\n<li>\u0438 \u0442.\u0434.<\/li>\n<\/ul>\n<p>   <\/li>\n<\/ol>\n<p>   \u041a\u0430\u0436\u0434\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043c\u0435\u0435\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 DW_AT_location, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u0434\u0440\u0435\u0441, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441, \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 \u0438\u043b\u0438 \u043d\u0430 \u0441\u0442\u0435\u043a\u0435, \u0431\u044b\u0442\u044c \u0447\u043b\u0435\u043d\u043e\u043c \u043a\u043b\u0430\u0441\u0441\u0430 \u0438\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u042d\u0442\u043e\u0442 \u0430\u0434\u0440\u0435\u0441 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c\u0441\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442 \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0435 Location Expressions, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0439 \u0441\u0442\u0435\u043a\u043e\u0432\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b. <\/p>\n<h5>\u0423\u0437\u043b\u044b, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u043a\u043e\u0434:<\/h5>\n<p>   <\/p>\n<ol>\n<li>\u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b (\u0444\u0443\u043d\u043a\u0446\u0438\u0438) \u2014 \u0443\u0437\u043b\u044b \u0441 \u0442\u044d\u0433\u043e\u043c DW_TAG_subprogram. \u0423\u0437\u043b\u044b-\u043f\u043e\u0442\u043e\u043c\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u2014 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/li>\n<li>\u0415\u0434\u0438\u043d\u0438\u0446\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 (Compilation Unit). \u0421\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c \u0432\u0441\u0435\u0445 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0443\u0437\u043b\u043e\u0432.<\/li>\n<\/ol>\n<p>   \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u0430\u044f \u0432\u044b\u0448\u0435, \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0441\u0435\u043a\u0446\u0438\u044f\u0445 &quot;.debug_info&quot; \u0438 &quot;.debug_abbrev&quot;. <\/p>\n<h5>\u0414\u0440\u0443\u0433\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f:<\/h5>\n<p>   <\/p>\n<ul>\n<li>\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043d\u043e\u043c\u0435\u0440\u0430\u0445 \u0441\u0442\u0440\u043e\u043a (\u0441\u0435\u043a\u0446\u0438\u044f &quot;.debug_line&quot;)<\/li>\n<li>\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043c\u0430\u043a\u0440\u043e\u0441\u0430\u0445 (\u0441\u0435\u043a\u0446\u0438\u044f &quot;.debug_macinfo&quot;)<\/li>\n<li>\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0444\u0440\u0435\u0439\u043c\u0430 (Call Frame Information) (\u0441\u0435\u043a\u0446\u0438\u044f &quot;.debug_frame&quot;)<\/li>\n<\/ul>\n<h4>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 ELF<\/h4>\n<p>   \u0421\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 EFL \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 libelf \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u0430 <a href=\"https:\/\/fedorahosted.org\/elfutils\/\">elfutils<\/a>. \u0412 \u0441\u0435\u0442\u0438 \u0435\u0441\u0442\u044c \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e libelf \u2014 <a href=\"http:\/\/people.freebsd.org\/%7Ejkoshy\/download\/libelf--\/article.html\">LibELF by Example<\/a> (\u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u043d\u0435\u0439 \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0430\u0442\u043a\u043e) \u0430 \u0442\u0430\u043a\u0436\u0435 <a href=\"http:\/\/www.nxmnpg.com\/3\/elf\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/a>. <br \/>   \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u044d\u0442\u0430\u043f\u043e\u0432:    <\/p>\n<ol>\n<li>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f libelf<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0444\u0430\u0439\u043b\u0430 (ELF Header)<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b (Program Header Table)<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0435\u043a\u0446\u0438\u0439<\/li>\n<li>\u0417\u0430\u043f\u0438\u0441\u044c \u0444\u0430\u0439\u043b\u0430<\/li>\n<\/ol>\n<p>   \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u044d\u0442\u0430\u043f\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435<\/p>\n<h5>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f libelf<\/h5>\n<p>   \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e elf_version(EV_CURRENT) \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u0415\u0441\u043b\u0438 \u043e\u043d \u0440\u0430\u0432\u0435\u043d EV_NONE \u2014 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u0438 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f. \u0417\u0430\u0442\u0435\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0439 \u043d\u0430\u043c \u0444\u0430\u0439\u043b \u043d\u0430 \u0434\u0438\u0441\u043a\u0435, \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0435\u0433\u043e \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0435\u0433\u043e \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e elf_begin:    <\/p>\n<pre><code class=\"cpp\">Elf * elf_begin(      int fd,      Elf_Cmd cmd,      Elf *elf)  <\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>fd \u2014 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430<\/li>\n<li>cmd \u2014 \u0440\u0435\u0436\u0438\u043c (ELF_C_READ \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, ELF_C_WRITE \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u0438\u043b\u0438 ELF_C_RDWR \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f\/\u0437\u0430\u043f\u0438\u0441\u0438), \u043e\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0436\u0438\u043c\u0443 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 (ELF_C_WRITE \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435)<\/li>\n<li>elf \u2014 \u043d\u0443\u0436\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0430\u0440\u0445\u0438\u0432\u043e\u0432 (.a), \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c 0<\/li>\n<\/ul>\n<p>   \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u043e \u0432\u0441\u0435\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445 libelf, 0 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0448\u0438\u0431\u043a\u0438. <\/p>\n<h5>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430<\/h5>\n<p>   \u041d\u043e\u0432\u044b\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0444\u0430\u0439\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 elf32_newehdr:&nbsp;     <\/p>\n<pre><code class=\"cpp\">Elf32_Ehdr * elf32_newehdr(      Elf *elf);  <\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>elf \u2014 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u043d\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 elf_begin<\/li>\n<\/ul>\n<p>   \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 0 \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435 \u0438\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u2014 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a ELF-\u0444\u0430\u0439\u043b\u0430:    <\/p>\n<pre><code class=\"cpp\">#define EI_NIDENT 16  typedef struct {      unsigned char e_ident[EI_NIDENT];      Elf32_Half e_type;      Elf32_Half e_machine;      Elf32_Word e_version;      Elf32_Addr e_entry;      Elf32_Off e_phoff;      Elf32_Off e_shoff;      Elf32_Word e_flags;      Elf32_Half e_ehsize;      Elf32_Half e_phentsize;      Elf32_Half e_phnum;      Elf32_Half e_shentsize;      Elf32_Half e_shnum;      Elf32_Half e_shstrndx;  } Elf32_Ehdr;  <\/code><\/pre>\n<p>   \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u044f \u0435\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043d\u0430\u043c:    <\/p>\n<ul>\n<li> e_ident \u2014 \u0431\u0430\u0439\u0442\u043e\u0432\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438, \u0438\u043c\u0435\u0435\u0442 \u0442\u0430\u043a\u0438\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b: <br \/> \n<ul>\n<li>EI_MAG0, EI_MAG1, EI_MAG2, EI_MAG3 \u2014 \u044d\u0442\u0438 4 \u0431\u0430\u0439\u0442\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0441\u0438\u043c\u043e\u0432\u043b\u044b 0x7f,&#8217;ELF&#8217;, \u0447\u0442\u043e \u0437\u0430 \u043d\u0430\u0441 \u0443\u0436\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f elf32_newehdr<\/li>\n<li>EI_DATA \u2014 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0442\u0438\u043f \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0444\u0430\u0439\u043b\u0435: ELFDATA2LSB \u0438\u043b\u0438 ELFDATA2MSB. \u041d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c ELFDATA2LSB \u0442\u0430\u043a: e_ident[EI_DATA] = ELFDATA2LSB<\/li>\n<li>EI_VERSION \u2014 \u0432\u0435\u0440\u0441\u0438\u044f \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0444\u0430\u0439\u043b\u0430, \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u0437\u0430 \u043d\u0430\u0441<\/li>\n<li>EI_PAD \u2014 \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0435\u043c <\/li>\n<\/ul>\n<\/li>\n<li> e_type \u2014 \u0442\u0438\u043f \u0444\u0430\u0439\u043b\u0430, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c ET_NONE \u2014 \u0431\u0435\u0437 \u0442\u0438\u043f\u0430, ET_REL \u2014 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b, ET_EXEC \u2014 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u0444\u0430\u0439\u043b, ET_DYN \u2014 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0438 \u0442.\u0434. \u041d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u0438\u043f \u0444\u0430\u0439\u043b\u0430 \u0432 ET_EXEC <\/li>\n<li> e_machine \u2014 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430, \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u0430\u044f \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 EM_386 \u2014 \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b Intel, \u0434\u043b\u044f ARM \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u044e\u0434\u0430 EM_ARM (40) \u2014 \u0441\u043c. <a href=\"http:\/\/infocenter.arm.com\/help\/topic\/com.arm.doc.ihi0044b\/IHI0044B_aaelf.pdf\">ELF for the ARM Architecture<\/a><\/li>\n<li>e_version \u2014 \u0432\u0435\u0440\u0441\u0438\u044f \u0444\u0430\u0439\u043b\u0430, \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432 EV_CURRENT<\/li>\n<li>e_entry \u2014 \u0430\u0434\u0440\u0435\u0441 \u0442\u043e\u0447\u043a\u0438 \u0432\u0445\u043e\u0434\u0430, \u0434\u043b\u044f \u043d\u0430\u0441 \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e<\/li>\n<li>e_phoff \u2014 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0432 \u0444\u0430\u0439\u043b\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, e_shoff \u2014 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0441\u0435\u043a\u0446\u0438\u0439, \u043d\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c<\/li>\n<li>e_flags \u2014 \u0441\u043f\u0435\u0446\u0435\u0444\u0438\u0447\u043d\u044b\u0435 \u0434\u043b\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0444\u043b\u0430\u0433\u0438, \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b (Cortex-M3) \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0440\u0430\u0432\u043d\u044b\u043c 0x05000000 (ABI version 5)<\/li>\n<li>e_ehsize, e_phentsize, e_phnum, e_shentsize, e_shnum \u2014 \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0435\u043c<\/li>\n<li>e_shstrndx \u2014 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u043e\u043c\u0435\u0440 \u0441\u0435\u043a\u0446\u0438\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u0442\u0440\u043e\u043a \u0441 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u043c\u0438 \u0441\u0435\u043a\u0446\u0438\u0439. \u0422\u0430\u043a \u043a\u0430\u043a \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0441\u0435\u043a\u0446\u0438\u0439 \u0443 \u043d\u0430\u0441 \u0435\u0449\u0435 \u043d\u0435\u0442, \u044d\u0442\u043e\u0442 \u043d\u043e\u043c\u0435\u0440 \u043c\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u043f\u043e\u0437\u0434\u043d\u0435\u0435<\/li>\n<\/ul>\n<h5>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b<\/h5>\n<p>   \u041a\u0430\u043a \u0443\u0436\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u043e\u0441\u044c, \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b (Program Header Table) \u2014 \u044d\u0442\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u0441\u0435\u043a\u0446\u0438\u0439 \u0444\u0430\u0439\u043b\u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u043c \u043f\u0430\u043c\u044f\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u0447\u0438\u043a\u0443, \u043a\u0443\u0434\u0430 \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0435\u043a\u0446\u0438\u044e. \u0417\u0430\u0433\u043e\u043e\u0432\u043e\u043a \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 elf32_newphdr:    <\/p>\n<pre><code class=\"cpp\">Elf32_Phdr * elf32_newphdr(      Elf *elf,      size_t count); <\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li> elf \u2014 \u043d\u0430\u0448 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440<\/li>\n<li>count \u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u0422\u0430\u043a \u043a\u0430\u043a \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0430 \u0441\u0435\u043a\u0446\u0438\u044f (\u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c), \u0442\u043e count \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u0435\u043d 1. <\/li>\n<\/ul>\n<p>   \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 0 \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435 \u0438\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. <br \/>   \u041a\u0430\u0436\u0434\u0430\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a\u043e\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439:    <\/p>\n<pre><code class=\"cpp\">typedef struct {      Elf32_Word p_type;      Elf32_Off p_offset;      Elf32_Addr p_vaddr;      Elf32_Addr p_paddr;      Elf32_Word p_filesz;      Elf32_Word p_memsz;      Elf32_Word p_flags;      Elf32_Word p_align;  } Elf32_Phdr;<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li> p_type \u2014 \u0442\u0438\u043f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 (\u0441\u0435\u043a\u0446\u0438\u0438), \u0442\u0443\u0442 \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u043a\u0430\u0437\u0430\u0442\u044c PT_LOAD \u2014 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442<\/li>\n<li>p_offset \u2014 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0439 \u0432 \u0444\u0430\u0439\u043b\u0435, \u043e\u0442\u043a\u0443\u0434\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u044c. \u0423 \u043d\u0430\u0441 \u044d\u0442\u043e \u0441\u0435\u043a\u0446\u0438\u044f .text, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0444\u0430\u0439\u043b\u0430 \u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043a\u0430\u043a \u0441\u0443\u043c\u043c\u0443 \u0434\u043b\u0438\u043d \u044d\u0442\u0438\u0445 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432. \u0414\u043b\u0438\u043d\u0443 \u043b\u044e\u0431\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 elf32_fsize:<br \/> \n<pre><code class=\"cpp\">size_t elf32_fsize(Elf_Type type, size_t count, unsigned int version);<\/code><\/pre>\n<p> type \u2014 \u0437\u0434\u0435\u0441\u044c \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 ELF_T_\u0445\u0445\u0445, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u044b \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0437\u043c\u0435\u0440\u044b ELF_T_EHDR \u0438 ELF_T_PHDR; count \u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430, version \u2014 \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432 EV_CURRENT<\/li>\n<li>p_vaddr, p_paddr \u2014 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0438 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u0434\u0440\u0435\u0441, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0441\u0435\u043a\u0446\u0438\u0438. \u0422\u0430\u043a \u043a\u0430\u043a \u0443 \u043d\u0430\u0441 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u043d\u0435\u0442, \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0435\u0433\u043e \u0440\u0430\u0432\u043d\u044b\u043c \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443, \u0432 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u2014 0, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u044e\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f \u043d\u0430\u0448\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430.<\/li>\n<li>p_filesz, p_memsz \u2014 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0435\u043a\u0446\u0438\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435 \u0438 \u043f\u0430\u043c\u044f\u0442\u0438. \u0423 \u043d\u0430\u0441 \u043e\u043d\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b, \u043d\u043e \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u0435\u043a\u0446\u0438\u0438 \u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0435\u0449\u0435 \u043d\u0435\u0442, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0438\u0445 \u043f\u043e\u0437\u0434\u043d\u0435\u0435<\/li>\n<li>p_flags \u2014 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 \u043f\u0430\u043c\u044f\u0442\u0438. \u041c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c PF_R \u2014 \u0447\u0442\u0435\u043d\u0438\u0435, PF_W \u2014 \u0437\u0430\u043f\u0438\u0441\u044c, PF_X \u2014 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u0438\u0445 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0435\u0439. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c p_flags \u0440\u0430\u0432\u043d\u044b\u043c PF_R + PF_X<\/li>\n<li>p_align \u2014 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430, \u0443 \u043d\u0430\u0441 4<\/li>\n<\/ul>\n<p>   <\/p>\n<h5>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0435\u043a\u0446\u0438\u0439<\/h5>\n<p>   \u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0441\u0435\u043a\u0446\u0438\u0439. \u041f\u0443\u0441\u0442\u0430\u044f \u0441\u0435\u043a\u0446\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 elf_newscn:     <\/p>\n<pre><code class=\"cpp\">Elf_Scn * elf_newscn(      Elf *elf);<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>elf \u2014 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u043d\u044b\u0439 \u0440\u0430\u043d\u0435\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 elf_begin<\/li>\n<\/ul>\n<p>   \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0441\u0435\u043a\u0446\u0438\u044e \u0438\u043b\u0438 0 \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435.  <br \/>   \u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0435\u043a\u0446\u0438\u0438 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0441\u0435\u043a\u0446\u0438\u0438 \u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u0442\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u043a\u0446\u0438\u0438. <br \/>   \u0423\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0441\u0435\u043a\u0446\u0438\u0438 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 elf32_getshdr:    <\/p>\n<pre><code class=\"cpp\">Elf32_Shdr * elf32_getshdr(      Elf_Scn *scn);<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>scn \u2014 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0441\u0435\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 elf_newscn. <\/li>\n<\/ul>\n<p>   \u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0441\u0435\u043a\u0446\u0438\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:    <\/p>\n<pre><code class=\"cpp\">typedef struct {      Elf32_Word\t\tsh_name;      Elf32_Word\t\tsh_type;      Elf32_Word\t\tsh_flags;      Elf32_Addr\t\tsh_addr;      Elf32_Off\t\tsh_offset;      Elf32_Word\t\tsh_size;      Elf32_Word\t\tsh_link;      Elf32_Word\t\tsh_info;      Elf32_Word\t\tsh_addralign;      Elf32_Word\t\tsh_entsize;  } Elf32_Shdr;<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>sh_name \u2014 \u0438\u043c\u044f \u0441\u0435\u043a\u0446\u0438\u0438 \u2014 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0432 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 \u0441\u0435\u043a\u0446\u0438\u0439 (\u0441\u0435\u043a\u0446\u0438\u044f .shstrtab) \u2014 \u0441\u043c. \u00ab\u0422\u0430\u0431\u043b\u0438\u0446\u044b \u0441\u0442\u0440\u043e\u043a\u00bb \u0434\u0430\u043b\u0435\u0435<\/li>\n<li>sh_type \u2014 \u0442\u0438\u043f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0441\u0435\u043a\u0446\u0438\u0438, \u0434\u043b\u044f \u0441\u0435\u043a\u0446\u0438\u0438 \u0441 \u043a\u043e\u0434\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c SHT_PROGBITS, \u0434\u043b\u044f \u0441\u0435\u043a\u0446\u0438\u0439 \u0441 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439 \u0441\u0442\u0440\u043e\u043a \u2014 SHT_STRTAB, \u0434\u043b\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u2014 SHT_SYMTAB&nbsp;<\/li>\n<li>sh_flags \u2014 \u0444\u043b\u0430\u0433\u0438 \u0441\u0435\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0438 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0440\u0438:<br \/> \n<ul>\n<li> SHF_ALLOC \u2014 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0441\u0435\u043a\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u044c<\/li>\n<li> SHF_EXECINSTR \u2014 \u0441\u0435\u043a\u0446\u0438\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u043a\u043e\u0434<\/li>\n<li> SHF_STRINGS \u2014 \u0441\u0435\u043a\u0446\u0438\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441\u0442\u0440\u043e\u043a<\/li>\n<\/ul>\n<p>   \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0434\u043b\u044f \u0441\u0435\u043a\u0446\u0438\u0438 .text \u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0444\u043b\u0430\u0433\u0438 SHF_ALLOC + SHF_EXECINSTR<\/li>\n<li>sh_addr \u2014 \u0430\u0434\u0440\u0435\u0441, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0441\u0435\u043a\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u044c<\/li>\n<li>sh_offset \u2014 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0441\u0435\u043a\u0446\u0438\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435 \u2014 \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0435\u043c, \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442 \u0437\u0430 \u043d\u0430\u0441<\/li>\n<li>sh_size \u2014 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0435\u043a\u0446\u0438\u0438 \u2014 \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0435\u043c<\/li>\n<li>sh_link \u2014 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u043e\u043c\u0435\u0440 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 \u0441\u0435\u043a\u0446\u0438\u0438, \u043d\u0443\u0436\u043d\u0430 \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u0438 \u0441\u0435\u043a\u0446\u0438\u0438 \u0441 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439 \u0441\u0442\u0440\u043e\u043a (\u0441\u043c. \u0434\u0430\u043b\u0435\u0435)<\/li>\n<li>sh_info \u2014 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0430\u044f \u043e\u0442 \u0442\u0438\u043f\u0430 \u0441\u0435\u043a\u0446\u0438\u0438, \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0432 0<\/li>\n<li>sh_addralign \u2014 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u0430, \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0435\u043c<\/li>\n<li>sh_entsize \u2014 \u0435\u0441\u043b\u0438 \u0441\u0435\u043a\u0446\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0439 \u0434\u043b\u0438\u043d\u044b, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0434\u043b\u0438\u043d\u0443 \u0442\u0430\u043a\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430, \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0435\u043c<\/li>\n<\/ul>\n<p>   \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u0442\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u043a\u0446\u0438\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 elf_newdata:    <\/p>\n<pre><code class=\"cpp\">Elf_Data * elf_newdata(      Elf_Scn *scn);<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>scn \u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043d\u043e\u0432\u0443\u044e \u0441\u0435\u043a\u0446\u0438\u044e. <\/li>\n<\/ul>\n<p>   \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 0 \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435, \u0438\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 Elf_Data, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c:    <\/p>\n<pre><code class=\"cpp\">typedef struct {      void*\t\td_buf;      Elf_Type\t\td_type;      size_t\t\td_size;      off_t\t\td_off;      size_t\t\td_align;      unsigned\t\td_version;  } Elf_Data;<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>d_buf \u2014 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0441\u0435\u043a\u0446\u0438\u044e<\/li>\n<li>d_type \u2014 \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445, \u0434\u043b\u044f \u043d\u0430\u0441 \u0432\u0435\u0437\u0434\u0435 \u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442 ELF_T_BYTE<\/li>\n<li>d_size \u2014 \u0440\u0430\u0437\u043c\u0435\u0440 \u0434\u0430\u043d\u043d\u044b\u0445<\/li>\n<li>d_off \u2014 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0432 \u0441\u0435\u043a\u0446\u0438\u0438, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432 0<\/li>\n<li>d_align \u2014 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435, \u043c\u043e\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432 1 \u2014 \u0431\u0435\u0437 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f<\/li>\n<li>d_version \u2014 \u0432\u0435\u0440\u0441\u0438\u044f, \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432 EV_CURRENT<\/li>\n<\/ul>\n<h5>\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0435\u043a\u0446\u0438\u0438<\/h5>\n<p>   \u0414\u043b\u044f \u043d\u0430\u0448\u0438\u0445 \u0446\u0435\u043b\u0435\u0439 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0441\u0435\u043a\u0446\u0438\u0439:    <\/p>\n<ul>\n<li>.text \u2014 \u0441\u0435\u043a\u0446\u0438\u044f \u0441 \u043a\u043e\u0434\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b<\/li>\n<li>.symtab \u2014 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0444\u0430\u0439\u043b\u0430<\/li>\n<li>.strtab \u2014 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u0442\u0440\u043e\u043a, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u0438\u043c\u0435\u043d\u0430 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0438\u0437 \u0441\u0435\u043a\u0446\u0438\u0438 .symtab, \u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043d\u0435 \u0441\u0430\u043c\u0438 \u0438\u043c\u0435\u043d\u0430, \u0430 \u0438\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u044b<\/li>\n<li>.shstrtab \u2014 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u0442\u0440\u043e\u043a, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u0438\u043c\u0435\u043d\u0430 \u0441\u0435\u043a\u0446\u0438\u0439<\/li>\n<\/ul>\n<p>   \u0412\u0441\u0435 \u0441\u0435\u043a\u0446\u0438\u0438 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0442\u0430\u043a, \u043a\u0430\u043a \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435, \u043d\u043e \u0443 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u043a\u0446\u0438\u0438 \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438. <\/p>\n<p>  <\/p>\n<h6>\u0421\u0435\u043a\u0446\u0438\u044f .text<\/h6>\n<p>   \u042d\u0442\u0430 \u0441\u0435\u043a\u0446\u0438\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0439 \u043a\u043e\u0434, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0443\u0436\u043d\u043e sh_type \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432 SHT_PROGBITS, sh_flags \u2014 \u0432 SHF_EXECINSTR + SHF_ALLOC, sh_addr \u2014 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0440\u0430\u0432\u043d\u044b\u043c \u0430\u0434\u0440\u0435\u0441\u0443, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d \u044d\u0442\u043e\u0442 \u043a\u043e\u0434    <\/p>\n<h6>\u0421\u0435\u043a\u0446\u0438\u044f .symtab<\/h6>\n<p>   \u0421\u0435\u043a\u0446\u0438\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 (\u0444\u0443\u043d\u043a\u0446\u0438\u0439) \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0438 \u0444\u0430\u0439\u043b\u043e\u0432, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043e\u043d\u0438 \u0431\u044b\u043b\u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u044b. \u041e\u043d\u0430 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0442\u0430\u043a\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u0438\u043d\u043e\u0439 \u043f\u043e 16 \u0431\u0430\u0439\u0442:    <\/p>\n<pre><code class=\"cpp\">typedef struct {      Elf32_Word\t\tst_name;      Elf32_Addr\t\tst_value;      Elf32_Word\t\tst_size;      unsigned char\tst_info;      unsigned char\tst_other;      Elf32_Half\t\tst_shndx;  } Elf32_Sym;<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>st_name \u2014 \u0438\u043c\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u0430 (\u0438\u043d\u0434\u0435\u043a\u0441 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0441\u0442\u0440\u043e\u043a .strtab)<\/li>\n<li>st_value \u2014 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 (\u0430\u0434\u0440\u0435\u0441 \u0432\u0445\u043e\u0434\u0430 \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u043b\u0438 0 \u0434\u043b\u044f \u0444\u0430\u0439\u043b\u0430). \u0422\u0430\u043a \u043a\u0430\u043a Cortex-M3 \u0438\u043c\u0435\u0435\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043a\u043e\u043c\u0430\u043d\u0434 Thumb-2, \u044d\u0442\u043e\u0442 \u0430\u0434\u0440\u0435\u0441 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043d\u0435\u0447\u0435\u0442\u043d\u044b\u043c (\u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 + 1)<\/li>\n<li>st_size \u2014 \u0434\u043b\u0438\u043d\u0430 \u043a\u043e\u0434\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 (0 \u0434\u043b\u044f \u0444\u0430\u0439\u043b\u0430)<\/li>\n<li>st_info \u2014 \u0442\u0438\u043f \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u0438 \u0435\u0433\u043e \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438. \u0414\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u0430\u043a\u0440\u043e\u0441<br \/> \n<pre><code class=\"cpp\">#define ELF32_ST_INFO(b,t) (((b)&lt;&lt;4)+((t)&amp;0xf))<\/code><\/pre>\n<p>   \u0433\u0434\u0435 b \u2014 \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438, \u0430 t \u2014 \u0442\u0438\u043f \u0441\u0438\u043c\u0432\u043e\u043b\u0430<br \/>  \u041e\u0431\u043b\u0430\u0441\u0442\u044c \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c STB_LOCAL (\u0441\u0438\u043c\u0432\u043e\u043b \u043d\u0435 \u0432\u0438\u0434\u0435\u043d \u0438\u0437 \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432) \u0438\u043b\u0438 STB_GLOBAL (\u0432\u0438\u0434\u0435\u043d). \u0414\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c STB_GLOBAL.<br \/>  \u0422\u0438\u043f \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u2014 STT_FUNC \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438, STT_FILE \u0434\u043b\u044f \u0444\u0430\u0439\u043b\u0430<\/li>\n<li>st_other \u2014 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432 0<\/li>\n<li>st_shndx \u2014 \u0438\u043d\u0434\u0435\u043a\u0441 \u0441\u0435\u043a\u0446\u0438\u0438, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d \u0441\u0438\u043c\u0432\u043e\u043b (\u0438\u043d\u0434\u0435\u043a\u0441 \u0441\u0435\u043a\u0446\u0438\u0438 .text), \u0438\u043b\u0438 SHN_ABS \u0434\u043b\u044f \u0444\u0430\u0439\u043b\u0430.<br \/>  \u0418\u043d\u0434\u0435\u043a\u0441 \u0441\u0435\u043a\u0446\u0438\u0438 \u043f\u043e \u0435\u0435 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u0443 scn \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e elf_ndxscn:<br \/> \n<pre><code class=\"cpp\">size_t elf_ndxscn(      Elf_Scn *scn);<\/code><\/pre>\n<p>   <\/li>\n<\/ul>\n<p>   \u0414\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0441\u0435\u043a\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0440\u0438 \u043f\u0440\u043e\u0445\u043e\u0434\u0435 \u043f\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c\u0443 \u0442\u0435\u043a\u0441\u0442\u0443 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432, \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0442\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043e\u043f\u0438\u0441\u0430\u0442\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u043a\u0446\u0438\u0438 (d_buf). <br \/>   \u042d\u0442\u0430 \u0441\u0435\u043a\u0446\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0442\u043e\u043b\u044c\u043a\u043e sh_type \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432 SHT_SYMTAB, \u0430 \u0438\u043d\u0434\u0435\u043a\u0441 \u0441\u0435\u043a\u0446\u0438\u0438 .strtab \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043f\u043e\u043b\u0435 sh_link, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u044d\u0442\u0438 \u0441\u0435\u043a\u0446\u0438\u0438 \u0441\u0442\u0430\u043d\u0443\u0442 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c\u0438. <\/p>\n<h6>\u0421\u0435\u043a\u0446\u0438\u044f .strtab<\/h6>\n<p>   \u0412 \u044d\u0442\u043e\u0439 \u0441\u0435\u043a\u0446\u0438\u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u0430 \u0432\u0441\u0435\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0438\u0437 \u0441\u0435\u043a\u0446\u0438\u0438 .symtab. \u0421\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u0430\u044f \u0441\u0435\u043a\u0446\u0438\u044f, \u043d\u043e sh_type \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432 SHT_STRTAB, sh_flags \u2014 \u0432 SHF_STRINGS, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u044d\u0442\u0430 \u0441\u0435\u043a\u0446\u0438\u044f \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439 \u0441\u0442\u0440\u043e\u043a. <br \/>   \u0414\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0441\u0435\u043a\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0440\u0438 \u043f\u0440\u043e\u0445\u043e\u0434\u0435 \u043f\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c\u0443 \u0442\u0435\u043a\u0441\u0442\u0443 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432, \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0442\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043e\u043f\u0438\u0441\u0430\u0442\u0435\u043b\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u043a\u0446\u0438\u0438 (d_buf). <\/p>\n<h6>\u0421\u0435\u043a\u0446\u0438\u044f .shstrtab<\/h6>\n<p>   \u0421\u0435\u043a\u0446\u0438\u044f \u2014 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u0442\u0440\u043e\u043a, \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u0432\u0441\u0435\u0445 \u0441\u0435\u043a\u0446\u0438\u0439 \u0444\u0430\u0439\u043b\u0430, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u0441\u0432\u043e\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a. \u0421\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u0438 \u0441\u0435\u043a\u0446\u0438\u044f .strtab. \u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0435\u0435 \u0438\u043d\u0434\u0435\u043a\u0441 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043f\u043e\u043b\u0435 e_shstrndx \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0444\u0430\u0439\u043b\u0430.<\/p>\n<p>  <\/p>\n<h6>\u0422\u0430\u0431\u043b\u0438\u0446\u044b \u0441\u0442\u0440\u043e\u043a<\/h6>\n<p>   \u0422\u0430\u0431\u043b\u0438\u0446\u044b \u0441\u0442\u0440\u043e\u043a \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0438\u0434\u0443\u0449\u0438\u0435 \u043f\u043e\u0434\u0440\u044f\u0434 \u0441\u0442\u0440\u043e\u043a\u0438, \u043e\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u043d\u0443\u043b\u0435\u0432\u044b\u043c \u0431\u0430\u0439\u0442\u043e\u043c, \u043f\u0435\u0440\u0432\u044b\u0439 \u0431\u0430\u0439\u0442 \u0432 \u044d\u0442\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0442\u0430\u043a\u0436\u0435 0. \u0418\u043d\u0434\u0435\u043a\u0441 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445 \u043e\u0442 \u043d\u0430\u0447\u0430\u043b\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043f\u0435\u0440\u0432\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 &#8216;name&#8217; \u0438\u043c\u0435\u0435\u0442 \u0438\u043d\u0434\u0435\u043a\u0441 1, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 &#8216;var&#8217; \u0438\u043c\u0435\u0435\u0442 \u0438\u043d\u0434\u0435\u043a\u0441 6.    <\/p>\n<pre>\u0418\u043d\u0434\u0435\u043a\u0441  0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15         \\0   n   a   m   e  \\0   v   a   r  \\0  <\/pre>\n<h5>\u0417\u0430\u043f\u0438\u0441\u044c \u0444\u0430\u0439\u043b\u0430<\/h5>\n<p>   \u0418\u0442\u0430\u043a, \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u0438 \u0441\u0435\u043a\u0446\u0438\u0438 \u0443\u0436\u0435 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u044b, \u0442\u0435\u043f\u0435\u0440\u044c \u0438\u0445 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0444\u0430\u0439\u043b \u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 libelf. \u0417\u0430\u043f\u0438\u0441\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044f elf_update:    <\/p>\n<pre><code class=\"cpp\">off_t elf_update(      Elf *elf,      Elf_Cmd cmd);<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>elf \u2014 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440<\/li>\n<li>cmd \u2014 \u043a\u043e\u043c\u0430\u043d\u0434\u0430, \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0440\u0430\u0432\u043d\u0430 ELF_C_WRITE \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438. <\/li>\n<\/ul>\n<p>   \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 -1 \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435. \u0422\u0435\u043a\u0441\u0442 \u043e\u0448\u0438\u0431\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u044b\u0437\u0432\u0430\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e elf_errmsg(-1), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0438\u0442 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443 \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439. <br \/>   \u0417\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 elf_end, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u043d\u0430\u0448 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u0440\u0430\u043d\u0435\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u0444\u0430\u0439\u043b. <br \/>   \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0430\u0448 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435. <\/p>\n<h4> \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 DWARF<\/h4>\n<p>   \u0421\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0431\u0443\u0434\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438&nbsp; <a href=\"http:\/\/sourceforge.net\/projects\/libdwarf\/\">libdwarf<\/a>, \u0432 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0435 \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0438\u0434\u0435\u0442 pdf-\u0444\u0430\u0439\u043b \u0441 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439 (libdwarf2p.1.pdf \u2014 A Producer Library Interface to DWARF).&nbsp; <br \/>   \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0442\u0430\u043a\u0438\u0445 \u044d\u0442\u0430\u043f\u043e\u0432:    <\/p>\n<ol>\n<li>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f libdwarf producer<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0443\u0437\u043b\u043e\u0432 (DIE \u2014 Debugging Information Entry)<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0443\u0437\u043b\u0430<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0415\u0434\u0438\u043d\u0438\u0446\u044b \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 (Compilation Unit)<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 Common Information Entry<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 (\u0444\u0443\u043d\u043a\u0446\u0438\u0439)<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442<\/li>\n<li>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0435\u043a\u0446\u0438\u0439 \u0441 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439<\/li>\n<li>\u041e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439<\/li>\n<\/ol>\n<p>   \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u044d\u0442\u0430\u043f\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 <\/p>\n<h5>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f libdwarf producer<\/h5>\n<p>   \u041c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0441 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0432 \u0441\u0435\u043a\u0446\u0438\u0438 .symtab, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043d\u0443\u0436\u043d\u043e \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c \u043f\u043e\u0441\u043b\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 libelf, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f ELF-\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0434\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0435\u043a\u0446\u0438\u0439. <br \/>   \u0414\u043b\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e dwarf_producer_init_c. \u0412 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 (dwarf_producer_init, dwarf_producer_init_b), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043d\u044e\u0430\u043d\u0441\u0430\u043c\u0438, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c\u0438 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u0443\u044e \u0438\u0437 \u043d\u0438\u0445.<\/p>\n<pre><code class=\"cpp\">Dwarf_P_Debug dwarf_producer_init_c(      Dwarf_Unsigned flags,      Dwarf_Callback_Func_c func,      Dwarf_Handler errhand,      Dwarf_Ptr errarg,      void * user_data,      Dwarf_Error *error)<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>flags \u2014 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044f \u043f\u043e \u00ab\u0438\u043b\u0438\u00bb \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0441\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0430\u0439\u0442\u043e\u0432 (little-endian, big-endian), \u0444\u043e\u0440\u043c\u0430\u0442 \u0440\u0435\u043b\u043e\u043a\u0430\u0446\u0438\u0439, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0430\u043c \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0443\u0436\u043d\u044b DW_DLC_WRITE \u0438 DW_DLC_SYMBOLIC_RELOCATIONS<\/li>\n<li>func \u2014 callback-\u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 ELF-\u0441\u0435\u043a\u0446\u0438\u0439 \u0441 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439. \u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0441\u043c. \u043d\u0438\u0436\u0435 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0435\u043a\u0446\u0438\u0439 \u0441 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439\u00bb<\/li>\n<li>errhand \u2014 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0438 \u043e\u0448\u0438\u0431\u043e\u043a. \u041c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c 0<\/li>\n<li>errarg \u2014 \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e errhand, \u043c\u043e\u0436\u043d\u043e \u0441\u0442\u0430\u0432\u0438\u0442\u044c 0<\/li>\n<li>user_data \u2014 \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u044b \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e func, \u043c\u043e\u0436\u043d\u043e \u0441\u0442\u0430\u0432\u0438\u0442\u044c 0<\/li>\n<li>error \u2014 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0439 \u043a\u043e\u0434 \u043e\u0448\u0438\u0431\u043a\u0438<\/li>\n<\/ul>\n<p>   \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 Dwarf_P_Debug \u2014 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0432\u043e \u0432\u0441\u0435\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445, \u0438\u043b\u0438 -1 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0448\u0438\u0431\u043a\u0438, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432 error \u0431\u0443\u0434\u0435\u0442 \u043a\u043e\u0434 \u043e\u0448\u0438\u0431\u043a\u0438 (\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u0435\u043a\u0441\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435 \u043f\u043e \u0435\u0433\u043e \u043a\u043e\u0434\u0443 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 dwarf_errmsg, \u043f\u0435\u0440\u0435\u0434\u0430\u0432 \u0435\u0439 \u044d\u0442\u043e\u0442 \u043a\u043e\u0434) <\/p>\n<p>  <\/p>\n<h5>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0423\u0437\u043b\u043e\u0432 (DIE \u2014 Debugging Information Entry)<\/h5>\n<p>   \u041a\u0430\u043a \u0431\u044b\u043b\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432\u044b\u0448\u0435, \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0434\u0440\u0435\u0432\u043e\u0432\u0438\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0443\u0437\u0435\u043b \u044d\u0442\u043e\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430, \u043d\u0443\u0436\u043d\u043e:    <\/p>\n<ul>\n<li>\u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0435\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 dwarf_new_die<\/li>\n<li>\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a \u043d\u0435\u043c\u0443 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b (\u043a\u0430\u0436\u0434\u044b\u0439 \u0442\u0438\u043f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0434\u0430\u043b\u0435\u0435)<\/li>\n<\/ul>\n<p>   \u0423\u0437\u0435\u043b \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 dwarf_new_die:    <\/p>\n<pre><code class=\"cpp\">Dwarf_P_Die dwarf_new_die(      Dwarf_P_Debug dbg,      Dwarf_Tag new_tag,      Dwarf_P_Die parent,      Dwarf_P_Die child,      Dwarf_P_Die left_sibling,      Dwarf_P_Die right_sibling,      Dwarf_Error *error)<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>dbg \u2014 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 Dwarf_P_Debug, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438<\/li>\n<li>new_tag \u2014 \u0442\u044d\u0433 (\u0442\u0438\u043f) \u0443\u0437\u043b\u0430 \u2014 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 DW_TAG_xxxx, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435 libdwarf.h<\/li>\n<li>parent, child, left_sibling, right_sibling \u2014 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c, \u043f\u043e\u0442\u043e\u043c\u043e\u043a, \u043b\u0435\u0432\u044b\u0439 \u0438 \u043f\u0440\u0430\u0432\u044b\u0439 \u0441\u043e\u0441\u0435\u0434\u0438 \u0443\u0437\u043b\u0430. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u044d\u0442\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0434\u0438\u043d, \u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c 0. \u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0440\u0430\u0432\u043d\u044b 0, \u0443\u0437\u0435\u043b \u0431\u0443\u0434\u0435\u0442 \u0438\u043b\u0438 \u043a\u043e\u0440\u043d\u0435\u0432\u044b\u043c, \u0438\u043b\u0438 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c<\/li>\n<li>error \u2014 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043a\u043e\u0434 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0440\u0438 \u0435\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0438<\/li>\n<\/ul>\n<p>   \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 DW_DLV_BADADDR \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435 \u0438\u043b\u0438 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 \u0443\u0437\u043b\u0430 Dwarf_P_Die \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0441\u043f\u0435\u0445\u0430 <\/p>\n<h5>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0443\u0437\u043b\u0430<\/h5>\n<p>   \u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0443\u0437\u043b\u0430 \u0435\u0441\u0442\u044c \u0446\u0435\u043b\u043e\u0435 \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0439 dwarf_add_AT_\u0445\u0445\u0445\u0445. \u0418\u043d\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u043a\u0430\u043a\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u0430\u0442\u0440\u0438\u0431\u0443\u0442, \u0442\u0430\u043a \u0447\u0442\u043e \u044f \u0434\u0430\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u043a\u043e\u043f\u0430\u043b\u0441\u044f \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043a\u043e\u0434\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0431\u0443\u0434\u0443\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0437\u0434\u0435\u0441\u044c, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0438\u0436\u0435 \u2014 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u0430\u0445. \u0412\u0441\u0435 \u043e\u043d\u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 ownerdie \u2014 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 \u0443\u0437\u043b\u0430, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0430\u0442\u0440\u0438\u0431\u0443\u0442, \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 \u043a\u043e\u0434 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0435 error. <br \/>   \u0424\u0443\u043d\u043a\u0446\u0438\u044f dwarf_add_AT_name \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043a \u0443\u0437\u043b\u0443 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u00ab\u0438\u043c\u044f\u00bb (DW_AT_name). \u0423 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u0443\u0437\u043b\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0438\u043c\u044f (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0443 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440, \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442), \u0443 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u043c\u0435\u043d\u0438 \u043c\u043e\u0436\u0435\u0442 \u0438 \u043d\u0435 \u0431\u044b\u0442\u044c (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0443 Compilation Unit)    <\/p>\n<pre><code class=\"cpp\">Dwarf_P_Attribute dwarf_add_AT_name(      Dwarf_P_Die ownerdie,      char *name,      Dwarf_Error *error)<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>name \u2014 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 (\u0438\u043c\u044f \u0443\u0437\u043b\u0430)<\/li>\n<\/ul>\n<p>   \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 DW_DLV_BADADDR \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438\u043b\u0438 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u043f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438. <br \/>   \u0424\u0443\u043d\u043a\u0446\u0438\u0438 dwarf_add_AT_signed_const, dwarf_add_AT_unsigned_const \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442 \u043a \u0443\u0437\u043b\u0443 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u0438 \u0435\u0433\u043e \u0437\u043d\u0430\u043a\u043e\u0432\u043e\u0435 (\u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u043e\u0435) \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0417\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u0438 \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442, \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432, \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u0441\u0442\u0440\u043e\u043a \u0438 \u0442.\u0434. \u0424\u043e\u0440\u043c\u0430\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0439:    <\/p>\n<pre><code class=\"cpp\">Dwarf_P_Attribute dwarf_add_AT_(un)signed_const(      Dwarf_P_Debug dbg,      Dwarf_P_Die ownerdie,      Dwarf_Half attr,      Dwarf_Signed value,      Dwarf_Error *error)<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>dbg \u2014 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 Dwarf_P_Debug, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438<\/li>\n<li>attr \u2014 \u0430\u0442\u0440\u0438\u0431\u0443\u0442, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0437\u0430\u0434\u0430\u0435\u0442\u0441\u044f, \u2014 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 DW_AT_xxxx, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435 libdwarf.h<\/li>\n<li>value \u2014 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430<\/li>\n<\/ul>\n<p>   \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 DW_DLV_BADADDR \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438\u043b\u0438 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u043f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438. <\/p>\n<h5>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0415\u0434\u0438\u043d\u0438\u0446\u044b \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 (Compilation Unit)<\/h5>\n<p>   \u0412 \u043b\u044e\u0431\u043e\u043c \u0434\u0435\u0440\u0435\u0432\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043a\u043e\u0440\u0435\u043d\u044c \u2014 \u0443 \u043d\u0430\u0441 \u044d\u0442\u043e \u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u043c\u044f \u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430, \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 (\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0444\u0443\u043d\u043a\u0446\u0438\u0439) \u043a \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0443, \u0433\u043b\u0430\u0432\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0438.\u0442.\u0434). \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435, \u043d\u0438\u043a\u0430\u043a\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438. \u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0435. <\/p>\n<h6>\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435<\/h6>\n<p>   \u0414\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u00ab\u0438\u043c\u044f\u00bb (DW_AT_name), \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0439\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e dwarf_add_AT_name, \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0443\u0437\u043b\u0430\u00bb. <\/p>\n<h6>\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0435<\/h6>\n<p>   \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e dwarf_add_AT_producer:    <\/p>\n<pre><code class=\"cpp\">Dwarf_P_Attribute dwarf_add_AT_name(      Dwarf_P_Die ownerdie,      char *producer_string,      Dwarf_Error *error)<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>producer_string \u2014 \u0441\u0442\u0440\u043e\u043a\u0430 \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438<\/li>\n<\/ul>\n<p>   \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 DW_DLV_BADADDR \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0438\u043b\u0438 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u043f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438. <\/p>\n<h5>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 Common Information Entry<\/h5>\n<p>   \u041e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 (\u043f\u043e\u0434\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b) \u0435\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438 \u0430\u0434\u0440\u0435\u0441 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u0442\u0435\u043a (\u0445\u043e\u0442\u044f \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043c\u043e\u0436\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043f\u043e-\u0441\u0432\u043e\u0435\u043c\u0443), \u0432\u0441\u0435 \u044d\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f Call Frame. \u041e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0443 \u043d\u0443\u0436\u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0444\u0440\u0435\u0439\u043c\u0430 \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0430\u0434\u0440\u0435\u0441 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c backtrace \u2014 \u0446\u0435\u043f\u043e\u0447\u043a\u0443 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0438\u0432\u0435\u043b\u0430 \u043d\u0430\u0441 \u0432 \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u044d\u0442\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439. \u0422\u0430\u043a\u0436\u0435 \u043e\u0431\u044b\u0447\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u043d\u0430 \u0441\u0442\u0435\u043a\u0435. \u041a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u0443\u0435\u0442 \u043c\u0435\u0441\u0442\u043e \u043d\u0430 \u0441\u0442\u0435\u043a\u0435 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u043b\u043e\u0433\u043e\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043a\u043e\u0434, \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u0438 \u0441\u0442\u0435\u043a \u2014 \u044d\u043f\u0438\u043b\u043e\u0433\u043e\u043c. <br \/>   \u042d\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0441\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u043e\u043b\u043e\u0433 \u0438 \u044d\u043f\u0438\u043b\u043e\u0433 \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435 \u0438 \u043a\u043e\u043d\u0446\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438; \u0438\u043d\u043e\u0433\u0434\u0430 \u0444\u0440\u0435\u0439\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f, \u0438\u043d\u043e\u0433\u0434\u0430 \u043d\u0435\u0442; \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0445 \u0438 \u0442.\u0434. <br \/>   \u0418\u0442\u0430\u043a, \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0443 \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c, \u043a\u0430\u043a \u043c\u0435\u043d\u044f\u044e\u0442 \u0441\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0438 \u0433\u0434\u0435 \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b \u043f\u0440\u0438 \u0432\u0445\u043e\u0434\u0435 \u0432 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443. \u042d\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f Call Frame Information \u2014 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0444\u0440\u0435\u0439\u043c\u0430. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 (\u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0433\u043e \u043a\u043e\u0434) \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0430\u0434\u0440\u0435\u0441 \u0444\u0440\u0435\u0439\u043c\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 (Canonical Frame Address \u2014 CFA) \u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e:    <\/p>\n<ul>\n<li>\u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0435<\/li>\n<li>\u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442 \u0441\u0432\u043e\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0435<\/li>\n<li>\u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u0442\u0435\u043a\u0435 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 CFA+n<\/li>\n<li>\u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435<\/li>\n<li>\u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c\u0441\u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c<\/li>\n<li>\u0438 \u0442.\u0434.<\/li>\n<\/ul>\n<p>    \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430 \u0432 \u043a\u043e\u0434\u0435, \u043e\u043d\u0430 \u043e\u0447\u0435\u043d\u044c \u043e\u0431\u044a\u0435\u043c\u043d\u0430 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0441\u0436\u0430\u0442\u043e\u043c \u0432\u0438\u0434\u0435 \u0432 \u0441\u0435\u043a\u0446\u0438\u0438 .debug_frame. \u0422\u0430\u043a \u043a\u0430\u043a \u043e\u0442 \u0430\u0434\u0440\u0435\u0441\u0430 \u043a \u0430\u0434\u0440\u0435\u0441\u0443 \u043e\u043d\u0430 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043c\u0430\u043b\u043e, \u0442\u043e \u043a\u043e\u0434\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0432\u0438\u0434\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 DW_CFA_\u0445\u0445\u0445\u0445. \u041a\u0430\u0436\u0434\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043e\u0434\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:    <\/p>\n<ul>\n<li>DW_CFA_set_loc \u2014 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0430\u0434\u0440\u0435\u0441 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435<\/li>\n<li>DW_CFA_advance_loc \u2014 \u043f\u0440\u043e\u0434\u0432\u0438\u0433\u0430\u0435\u0442 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0430\u0439\u0442<\/li>\n<li>DW_CFA_def_cfa \u2014 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0430\u0434\u0440\u0435\u0441 \u0441\u0442\u0435\u043a\u043e\u0432\u043e\u0433\u043e \u0444\u0440\u0435\u0439\u043c\u0430 (\u0447\u0438\u0441\u043b\u043e\u0432\u0430\u044f \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430)<\/li>\n<li>DW_CFA_def_cfa_register \u2014 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0430\u0434\u0440\u0435\u0441 \u0441\u0442\u0435\u043a\u043e\u0432\u043e\u0433\u043e \u0444\u0440\u0435\u0439\u043c\u0430 (\u0431\u0435\u0440\u0435\u0442\u0441\u044f \u0438\u0437 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430)<\/li>\n<li>DW_CFA_def_cfa_expression \u2014 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043a\u0430\u043a \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0430\u0434\u0440\u0435\u0441 \u0441\u0442\u0435\u043a\u043e\u0432\u043e\u0433\u043e \u0444\u0440\u0435\u0439\u043c\u0430<\/li>\n<li>DW_CFA_same_value \u2014 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f<\/li>\n<li>DW_CFA_register \u2014 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u0435, \u0447\u0442\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435<\/li>\n<li>\u0438 \u0442.\u0434.<\/li>\n<\/ul>\n<p>   \u042d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441\u0435\u043a\u0446\u0438\u0438 .debug_frame \u2014 \u044d\u0442\u043e \u0437\u0430\u043f\u0438\u0441\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0434\u0432\u0443\u0445 \u0442\u0438\u043f\u043e\u0432: Common Information Entry (CIE) \u0438 Frame Description Entry (FDE). CIE \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u0449\u0435\u0439 \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 FDE, \u0433\u0440\u0443\u0431\u043e \u0433\u043e\u0432\u043e\u0440\u044f \u043e\u043d\u0430 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0442\u0438\u043f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440. FDE \u0436\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u043a\u0430\u0436\u0434\u0443\u044e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443. \u041f\u0440\u0438 \u0432\u0445\u043e\u0434\u0435 \u0432 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0438\u0437 CIE, \u0430 \u0437\u0430\u0442\u0435\u043c \u0438\u0437 FDE. <br \/>   \u041c\u043e\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 CFA \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 sp (r13). \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c CIE \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0435\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044f dwarf_add_frame_cie:    <\/p>\n<pre><code class=\"cpp\">Dwarf_Unsigned dwarf_add_frame_cie(      Dwarf_P_Debug dbg,      char *augmenter,      Dwarf_Small code_align,      Dwarf_Small data_align,      Dwarf_Small ret_addr_reg,      Dwarf_Ptr init_bytes,      Dwarf_Unsigned init_bytes_len,      Dwarf_Error *error);<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>augmenter \u2014 \u0441\u0442\u0440\u043e\u043a\u0430 \u0432 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435 UTF-8, \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043a CIE \u0438\u043b\u0438 FDE \u0435\u0441\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f. \u0421\u0442\u0430\u0432\u0438\u043c \u043f\u0443\u0441\u0442\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443<\/li>\n<li>code_align \u2014 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445 (\u0443 \u043d\u0430\u0441 2)<\/li>\n<li>data_align \u2014 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u043e \u0444\u0440\u0435\u0439\u043c\u0435 (\u0441\u0442\u0430\u0432\u0438\u043c -4, \u0447\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0432\u0441\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442 \u043f\u043e 4 \u0431\u0430\u0439\u0442\u0430 \u043d\u0430 \u0441\u0442\u0435\u043a\u0435 \u0438 \u043e\u043d \u0440\u0430\u0441\u0442\u0435\u0442 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u0432\u043d\u0438\u0437)<\/li>\n<li>ret_addr_reg \u2014 \u0440\u0435\u0433\u0438\u0441\u0442\u0440, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0430\u0434\u0440\u0435\u0441 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u0438\u0437 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b (\u0443 \u043d\u0430\u0441 14)<\/li>\n<li>init_bytes \u2014 \u043c\u0430\u0441\u0441\u0438\u0432, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 DW_CFA_\u0445\u0445\u0445\u0445. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0435\u0442 \u0443\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u043c\u0430\u0441\u0441\u0438\u0432. \u041c\u043e\u0436\u043d\u043e \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0438\u043b\u0438 \u043f\u043e\u0434\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0435\u0433\u043e \u0432 elf-\u0444\u0430\u0439\u043b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c \u0421, \u0447\u0442\u043e \u044f \u0438 \u0441\u0434\u0435\u043b\u0430\u043b. \u0414\u043b\u044f \u043c\u043e\u0435\u0433\u043e \u0441\u043b\u0443\u0447\u0430\u044f \u043e\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 3 \u0431\u0430\u0439\u0442\u0430: 0x0C, 0x0D, 0, \u0447\u0442\u043e \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a DW_CFA_def_cfa: r13 ofs 0 (CFA \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435 r13, \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0440\u0430\u0432\u043d\u043e 0)<\/li>\n<li>init_bytes_len \u2014 \u0434\u043b\u0438\u043d\u0430 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 init_bytes<\/li>\n<\/ul>\n<p>   \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 DW_DLV_NOCOUNT \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435 \u0438\u043b\u0438 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 CIE, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 FDE \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b, \u0447\u0442\u043e \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0434\u0430\u043b\u0435\u0435 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 FDE \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b\u00bb <\/p>\n<h5>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445<\/h5>\n<p>   \u041f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u043d\u0443\u0436\u043d\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0443\u0437\u043b\u044b, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0442\u0438\u043f\u0430\u043c \u0434\u0430\u043d\u043d\u044b\u0445. \u0422\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e, \u043d\u043e \u0432\u0441\u0435 \u043e\u043d\u0438 \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0442\u0438\u043f\u0430\u0445 (\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0432\u0440\u043e\u0434\u0435 int, double \u0438 \u0442.\u0434), \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0441\u0442\u0440\u043e\u044f\u0442\u0441\u044f \u0438\u0437 \u0431\u0430\u0437\u043e\u0432\u044b\u0445.  <br \/>   \u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u0442\u0438\u043f \u2014 \u044d\u0442\u043e \u0443\u0437\u0435\u043b \u0441 \u0442\u044d\u0433\u043e\u043c DW_TAG_base_type. \u0423 \u043d\u0435\u0433\u043e \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b:     <\/p>\n<ul>\n<li>\u00ab\u0438\u043c\u044f\u00bb (DW_AT_name)<\/li>\n<li>\u00ab\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430\u00bb (DW_AT_encoding) \u2014 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u043a\u0430\u043a\u0438\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442 \u0434\u0430\u043d\u043d\u044b\u0439 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0442\u0438\u043f (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, DW_ATE_boolean \u2014 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439, DW_ATE_float \u2014 \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u043e\u0439, DW_ATE_signed \u2014 \u0446\u0435\u043b\u044b\u0439 \u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0439, DW_ATE_unsigned \u2014 \u0446\u0435\u043b\u044b\u0439 \u0431\u0435\u0437\u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0439 \u0438 \u0442.\u0434)<\/li>\n<li>\u00ab\u0440\u0430\u0437\u043c\u0435\u0440\u00bb (DW_AT_byte_size \u2014 \u0440\u0430\u0437\u043c\u0435\u0440 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445 \u0438\u043b\u0438 DW_AT_bit_size \u2014 \u0440\u0430\u0437\u043c\u0435\u0440 \u0432 \u0431\u0438\u0442\u0430\u0445)<\/li>\n<\/ul>\n<p>   \u0422\u0430\u043a\u0436\u0435 \u0443\u0437\u0435\u043b \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b. <br \/>   \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c 32-\u0431\u0438\u0442\u043d\u044b\u0439 \u0446\u0435\u043b\u044b\u0439 \u0437\u043d\u0430\u043a\u043e\u0432\u044b\u0439 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0442\u0438\u043f \u00abint\u00bb, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0443\u0437\u0435\u043b \u0441 \u0442\u044d\u0433\u043e\u043c DW_TAG_base_type \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u043c\u0443 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b DW_AT_name \u2014 \u00abint\u00bb, DW_AT_encoding \u2014 DW_ATE_signed, DW_AT_byte_size \u2014 4. <br \/>   \u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u044b\u0435 \u043e\u0442 \u043d\u0438\u0445. \u0422\u0430\u043a\u0438\u0435 \u0443\u0437\u043b\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442 DW_AT_type \u2014 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0438\u0445 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0442\u0438\u043f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 int \u2014 \u0443\u0437\u0435\u043b \u0441 \u0442\u044d\u0433\u043e\u043c DW_TAG_pointer_type \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0435 DW_AT_type \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0440\u0430\u043d\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0442\u0438\u043f \u00abint\u00bb.  <br \/>   \u0410\u0442\u0440\u0438\u0431\u0443\u0442 \u0441\u043e \u0441\u0441\u044b\u043b\u043a\u043e\u0439 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0443\u0437\u0435\u043b \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 dwarf_add_AT_reference:    <\/p>\n<pre><code class=\"cpp\">Dwarf_P_Attribute dwarf_add_AT_reference(      Dwarf_P_Debug dbg,      Dwarf_P_Die ownerdie,      Dwarf_Half attr,      Dwarf_P_Die otherdie,      Dwarf_Error *error)<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>attr \u2014 \u0430\u0442\u0440\u0438\u0431\u0443\u0442, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 DW_AT_type<\/li>\n<li>otherdie \u2014 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 \u0443\u0437\u043b\u0430 \u0442\u0438\u043f\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0441\u044b\u043b\u0430\u0435\u043c\u0441\u044f<\/li>\n<\/ul>\n<h5>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440<\/h5>\n<p>   \u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u043c\u043d\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u044f\u0441\u043d\u0438\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0442\u0438\u043f \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u2014 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043d\u043e\u043c\u0435\u0440\u0430\u0445 \u0441\u0442\u0440\u043e\u043a (Line Number Information). \u041e\u043d\u0430 \u0441\u043b\u0443\u0436\u0438\u0442 \u0434\u043b\u044f \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043b\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0439 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b. \u042d\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u0441\u0435\u043a\u0446\u0438\u0438 .debug_line. \u0415\u0441\u043b\u0438 \u0431\u044b \u0443 \u043d\u0430\u0441 \u0431\u044b\u043b\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u0435\u0441\u0442\u0430, \u0442\u043e \u043e\u043d\u0430 \u0445\u0440\u0430\u043d\u0438\u043b\u0430\u0441\u044c \u0431\u044b \u0432 \u0432\u0438\u0434\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u043a\u043e\u043b\u043e\u043d\u043a\u0430\u043c\u0438:    <\/p>\n<ul>\n<li>\u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c<\/li>\n<li>\u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u044d\u0442\u043e\u043c \u0444\u0430\u0439\u043b\u0435<\/li>\n<li>\u043d\u043e\u043c\u0435\u0440 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435<\/li>\n<li>\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043d\u0430\u0447\u0430\u043b\u043e\u043c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0438\u043b\u0438 \u0431\u043b\u043e\u043a\u0430 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432<\/li>\n<li>\u0438 \u0442.\u0434.<\/li>\n<\/ul>\n<p>   \u0422\u0430\u043a\u0430\u044f \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0431\u044b\u043b\u0430 \u0431\u044b \u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u044c\u0448\u0430\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u0436\u0438\u043c\u0430\u0442\u044c. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0435\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u0443\u0434\u0430\u043b\u044f\u044e\u0442\u0441\u044f, \u0438 \u0432\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u043d\u0435 \u0441\u0430\u043c\u0438 \u0441\u0442\u0440\u043e\u043a\u0438, \u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043d\u0438\u0445. \u042d\u0442\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u043a\u0430\u043a \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043b\u044f \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0430, \u0430 \u0441\u0430\u043c\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0443\u0436\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u00ab\u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f\u00bb \u044d\u0442\u0438\u043c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u043e\u043c. \u041a\u043e\u043c\u0430\u043d\u0434\u044b \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u0430\u043a: DW_LNS_advance_pc \u2014 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u043a\u043e\u043c\u0430\u043d\u0434 \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0430\u0434\u0440\u0435\u0441, DW_LNS_set_file \u2014 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0444\u0430\u0439\u043b, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430, DW_LNS_const_add_pc \u2014 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044c \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u043a\u043e\u043c\u0430\u043d\u0434 \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u0430\u0439\u0442 \u0438 \u0442.\u0434. <br \/>   \u041d\u0430 \u0442\u0430\u043a\u043e\u043c \u043d\u0438\u0437\u043a\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0441\u043b\u043e\u0436\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 libdwarf \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u043e\u0431\u043b\u0435\u0433\u0447\u0430\u044e\u0449\u0438\u0435 \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443. <br \/>   \u0425\u0440\u0430\u043d\u0438\u0442\u044c \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043c\u0435\u0441\u0442\u043e \u0438\u043c\u0435\u043d\u0438 \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0435\u0433\u043e \u0438\u043d\u0434\u0435\u043a\u0441 \u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435. \u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0444\u0430\u0439\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e dwarf_add_file_decl:    <\/p>\n<pre><code class=\"cpp\">Dwarf_Unsigned dwarf_add_file_decl(      Dwarf_P_Debug dbg,      char *name,      Dwarf_Unsigned dir_idx,      Dwarf_Unsigned time_mod,      Dwarf_Unsigned length,      Dwarf_Error *error)<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>name \u2014 \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430<\/li>\n<li>dir_idx \u2014 \u0438\u043d\u0434\u0435\u043a\u0441 \u043f\u0430\u043f\u043a\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0444\u0430\u0439\u043b. \u0418\u043d\u0434\u0435\u043a\u0441 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 dwarf_add_directory_decl. \u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043f\u043e\u043b\u043d\u044b\u0435 \u043f\u0443\u0442\u0438, \u043c\u043e\u0436\u043d\u043e \u0441\u0442\u0430\u0432\u0438\u0442\u044c 0 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u043f\u0430\u043f\u043a\u0438 \u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c dwarf_add_directory_decl \u0441\u043e\u0432\u0441\u0435\u043c<\/li>\n<li>time_mod \u2014 \u0432\u0440\u0435\u043c\u044f \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0444\u0430\u0439\u043b\u0430, \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c (0)<\/li>\n<li>length \u2014 \u0440\u0430\u0437\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u0430, \u0442\u0430\u043a\u0436\u0435 \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e (0)<\/li>\n<\/ul>\n<p>   \u0424\u0443\u043d\u043a\u0438\u044f \u0432\u0435\u0440\u043d\u0435\u0442 \u0438\u043d\u0434\u0435\u043a\u0441 \u0444\u0430\u0439\u043b\u0430 \u0438\u043b\u0438 DW_DLV_NOCOUNT \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435. <br \/>   \u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043d\u043e\u043c\u0435\u0440\u0430\u0445 \u0441\u0442\u0440\u043e\u043a \u0435\u0441\u0442\u044c \u0442\u0440\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 dwarf_add_line_entry_b, dwarf_lne_set_address, dwarf_lne_end_sequence, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0438\u0436\u0435. <br \/>   \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u0430\u043f\u043e\u0432:    <\/p>\n<ul>\n<li>\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0432 \u0441\u0435\u043a\u0446\u0438\u0438 .symtab<\/li>\n<li>\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0443\u0437\u043b\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438<\/li>\n<li>\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 FDE \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b<\/li>\n<li>\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b<\/li>\n<li>\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043d\u043e\u043c\u0435\u0440\u0430\u0445 \u0441\u0442\u0440\u043e\u043a<\/li>\n<\/ul>\n<h6>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b<\/h6>\n<p>   \u0421\u0438\u043c\u0432\u043e\u043b \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432\u044b\u0448\u0435 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u00ab\u0421\u0435\u043a\u0446\u0438\u044f .symtab\u00bb. \u0412 \u043d\u0435\u0439 \u0441\u0438\u043c\u043e\u043b\u044b \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u043f\u0435\u0440\u0435\u043c\u0435\u0436\u0430\u044e\u0442\u0441\u044f \u0441 \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u044d\u0442\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0438\u043c\u0432\u043e\u043b \u0444\u0430\u0439\u043b\u0430, \u0437\u0430\u0442\u0435\u043c \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0444\u0430\u0439\u043b \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0442\u0435\u043a\u0443\u0449\u0438\u043c, \u0438 \u0435\u0441\u043b\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u0444\u0430\u0439\u043b\u0435, \u0441\u0438\u043c\u0432\u043e\u043b \u0444\u0430\u0439\u043b\u0430 \u043e\u043f\u044f\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e. <\/p>\n<h6>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0443\u0437\u043b\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438<\/h6>\n<p>   \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0443\u0437\u0435\u043b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 dwarf_new_die (\u0441\u043c. \u0440\u0430\u0437\u0434\u0435\u043b \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0423\u0437\u043b\u043e\u0432\u00bb), \u0443\u043a\u0430\u0437\u0430\u0432 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0442\u0435\u0433\u0430 DW_TAG_subprogram, \u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u2014 Compilation Unit (\u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430) \u0438\u043b\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 DIE (\u0435\u0441\u043b\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f). \u0414\u0430\u043b\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b:    <\/p>\n<ul>\n<li>\u0438\u043c\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b (\u0444\u0443\u043d\u043a\u0446\u0438\u044f dwarf_add_AT_name, \u0441\u043c. \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0443\u0437\u043b\u0430\u00bb)<\/li>\n<li>\u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435, \u0433\u0434\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u0434 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b (\u0430\u0442\u0440\u0438\u0431\u0443\u0442 DW_AT_decl_line), \u0444\u0443\u043d\u043a\u0446\u0438\u044f dwarf_add_AT_unsigned_const (\u0441\u043c. \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0443\u0437\u043b\u0430\u00bb)<\/li>\n<li>\u0438\u043d\u0434\u0435\u043a\u0441 \u0438\u043c\u0435\u043d\u0438 \u0444\u0430\u0439\u043b\u0430 (\u0430\u0442\u0440\u0438\u0431\u0443\u0442 DW_AT_decl_file), \u0444\u0443\u043d\u043a\u0446\u0438\u044f dwarf_add_AT_unsigned_const (\u0441\u043c. \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0443\u0437\u043b\u0430\u00bb)<\/li>\n<li>\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b (\u0430\u0442\u0440\u0438\u0431\u0443\u0442 DW_AT_low_pc), \u0444\u0443\u043d\u043a\u0446\u0438\u044f dwarf_add_AT_targ_address, \u0441\u043c. \u043d\u0438\u0436\u0435<\/li>\n<li>\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b (\u0430\u0442\u0440\u0438\u0431\u0443\u0442 DW_AT_high_pc), \u0444\u0443\u043d\u043a\u0446\u0438\u044f dwarf_add_AT_targ_address, \u0441\u043c. \u043d\u0438\u0436\u0435<\/li>\n<li>\u0442\u0438\u043f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 (\u0430\u0442\u0440\u0438\u0431\u0443\u0442 DW_AT_type \u2014 \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0440\u0430\u043d\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0442\u0438\u043f, \u0441\u043c. \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445\u00bb). \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u2014 \u044d\u0442\u043e\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e<\/li>\n<\/ul>\n<p>   \u0410\u0442\u0440\u0438\u0431\u0443\u0442\u044b DW_AT_low_pc \u0438 DW_AT_high_pc \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 dwarf_add_AT_targ_address_b:    <\/p>\n<pre><code class=\"cpp\">Dwarf_P_Attribute dwarf_add_AT_targ_address_b(      Dwarf_P_Debug dbg,      Dwarf_P_Die ownerdie,      Dwarf_Half attr,      Dwarf_Unsigned pc_value,      Dwarf_Unsigned sym_index,      Dwarf_Error *error)<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>attr \u2014 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 (DW_AT_low_pc \u0438\u043b\u0438 DW_AT_high_pc)<\/li>\n<li>pc_value \u2014 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u0430<\/li>\n<li>sym_index \u2014 \u0438\u043d\u0434\u0435\u043a\u0441 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 .symtab. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d, \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c 0<\/li>\n<\/ul>\n<p>   \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u0435\u0440\u043d\u0435\u0442 DW_DLV_BADADDR \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435. <\/p>\n<h6>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 FDE \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b<\/h6>\n<p>   \u041a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u043e\u0441\u044c \u0432\u044b\u0448\u0435 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 Common Information Entry\u00bb, \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u043f\u0438\u0441\u0430\u0442\u0435\u043b\u044c \u0444\u0440\u0435\u0439\u043c\u0430, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u0430\u043f\u043e\u0432:    <\/p>\n<ul>\n<li>\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e FDE (\u0441\u043c. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 Common Information Entry)<\/li>\n<li>\u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e FDE \u043a \u043e\u0431\u0449\u0435\u043c\u0443 \u0441\u043f\u0438\u0441\u043a\u0443<\/li>\n<li>\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043a \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u043c\u0443 FDE<\/li>\n<\/ul>\n<p>   C\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 FDE \u043c\u043e\u0436\u043d\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 dwarf_new_fde:    <\/p>\n<pre><code class=\"cpp\">Dwarf_P_Fde dwarf_new_fde(      Dwarf_P_Debug dbg,      Dwarf_Error *error)<\/code><\/pre>\n<p>   \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u0435\u0440\u043d\u0435\u0442 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 \u043d\u043e\u0432\u043e\u0433\u043e FDE \u0438\u043b\u0438 DW_DLV_BADADDR \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435. <br \/>   \u041f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0439 FDE \u043a \u0441\u043f\u0438\u0441\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 dwarf_add_frame_fde:    <\/p>\n<pre><code class=\"cpp\">Dwarf_Unsigned dwarf_add_frame_fde(      Dwarf_P_Debug dbg,      Dwarf_P_Fde fde,      Dwarf_P_Die die,      Dwarf_Unsigned cie,      Dwarf_Addr virt_addr,      Dwarf_Unsigned code_len,      Dwarf_Unsigned sym_idx,      Dwarf_Error* error)<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>fde \u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440<\/li>\n<li>die \u2014 DIE \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b (\u0441\u043c. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0443\u0437\u043b\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0441 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438)<\/li>\n<li>cie \u2014 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 CIE (\u0441\u043c. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 Common Information Entry)<\/li>\n<li>virt_addr \u2014 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u043d\u0430\u0448\u0435\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b<\/li>\n<li>code_len \u2014 \u0434\u043b\u0438\u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0432 \u0431\u0430\u0439\u0442\u0430\u0445<\/li>\n<li>sym_idx \u2014 \u0438\u043d\u0434\u0435\u043a\u0441 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 (\u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d, \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c 0)<\/li>\n<\/ul>\n<p>   \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u0435\u0440\u043d\u0435\u0442 DW_DLV_NOCOUNT \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435. <br \/>   \u041f\u043e\u0441\u043b\u0435 \u0432\u0441\u0435\u0433\u043e \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 DW_CFA_\u0445\u0445\u0445\u0445 \u043a \u043d\u0430\u0448\u0435\u043c\u0443 FDE. \u0414\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u044d\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438 dwarf_add_fde_inst \u0438 dwarf_fde_cfa_offset. \u041f\u0435\u0440\u0432\u0430\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043a \u0441\u043f\u0438\u0441\u043a\u0443 \u0437\u0430\u0434\u0430\u043d\u043d\u0443\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e:    <\/p>\n<pre><code class=\"cpp\">Dwarf_P_Fde dwarf_add_fde_inst(      Dwarf_P_Fde fde,      Dwarf_Small op,      Dwarf_Unsigned val1,      Dwarf_Unsigned val2,      Dwarf_Error *error)<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>fde \u2014 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e FDE<\/li>\n<li>op \u2014 \u043a\u043e\u0434 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 (DW_CFA_\u0445\u0445\u0445\u0445)<\/li>\n<li>val1, val2 \u2014 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 (\u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u0441\u043c. \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442, \u0440\u0430\u0437\u0434\u0435\u043b 6.4.2 Call Frame Instructions)<\/li>\n<\/ul>\n<p>   \u0424\u0443\u043d\u043a\u0446\u0438\u044f dwarf_fde_cfa_offset \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e DW_CFA_offset:    <\/p>\n<pre><code class=\"cpp\">Dwarf_P_Fde dwarf_fde_cfa_offset(      Dwarf_P_Fde fde,      Dwarf_Unsigned reg,      Dwarf_Signed offset,      Dwarf_Error *error)<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>fde \u2014 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e FDE<\/li>\n<li>reg \u2014 \u0440\u0435\u0433\u0438\u0441\u0442\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0444\u0440\u0435\u0439\u043c<\/li>\n<li>offset \u2014 \u0435\u0433\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0432 \u0444\u0440\u0435\u0439\u043c\u0435 (\u043d\u0435 \u0432 \u0431\u0430\u0439\u0442\u0430\u0445, \u0430 \u0432 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0445 \u0444\u0440\u0435\u0439\u043c\u0430, \u0441\u043c. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 Common Information Entry, data_align)<\/li>\n<\/ul>\n<p>   \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443, \u0432 \u043f\u0440\u043e\u043b\u043e\u0433\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432 \u0441\u0442\u0435\u043a\u043e\u0432\u044b\u0439 \u0444\u0440\u0435\u0439\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440 lr (r14). \u041f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e DW_CFA_advance_loc \u0441 \u043f\u0435\u0440\u0432\u044b\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c, \u0440\u0430\u0432\u043d\u044b\u043c 1, \u0447\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u043f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 pc \u043d\u0430 2 \u0431\u0430\u0439\u0442\u0430 (\u0441\u043c. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 Common Information Entry, code_align), \u0437\u0430\u0442\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c DW_CFA_def_cfa_offset \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c 4 (\u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u043e \u0444\u0440\u0435\u0439\u043c\u0435 \u043d\u0430 4 \u0431\u0430\u0439\u0442\u0430) \u0438 \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e dwarf_fde_cfa_offset \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c reg=14 offset=1, \u0447\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 r14 \u0432 \u0444\u0440\u0435\u0439\u043c \u0441\u043e \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435\u043c -4 \u0431\u0430\u0439\u0442\u0430 \u043e\u0442 CFA. <\/p>\n<h6>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b<\/h6>\n<p>   \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0441\u043c. \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u00bb<\/p>\n<p>  <\/p>\n<h6>C\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043d\u043e\u043c\u0435\u0440\u0430\u0445 \u0441\u0442\u0440\u043e\u043a<\/h6>\n<p>   \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0442\u0430\u043a:    <\/p>\n<ul>\n<li>\u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0431\u043b\u043e\u043a \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 dwarf_lne_set_address<\/li>\n<li>\u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043a\u043e\u0434\u0430 (\u0438\u043b\u0438 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438) \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c \u043a\u043e\u0434\u0435 (dwarf_add_line_entry)<\/li>\n<li>\u0432 \u043a\u043e\u043d\u0446\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u043c \u0431\u043b\u043e\u043a \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 dwarf_lne_end_sequence<\/li>\n<\/ul>\n<p>   \u0424\u0443\u043d\u043a\u0446\u0438\u044f dwarf_lne_set_address \u0437\u0430\u0434\u0430\u0435\u0442 \u0430\u0434\u0440\u0435\u0441, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0431\u043b\u043e\u043a \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439:    <\/p>\n<pre><code class=\"cpp\">Dwarf_Unsigned dwarf_lne_set_address(      Dwarf_P_Debug dbg,      Dwarf_Addr offs,      Dwarf_Unsigned symidx,      Dwarf_Error *error)<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>offs \u2014 \u0430\u0434\u0440\u0435\u0441 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b (\u0430\u0434\u0440\u0435\u0441 \u043f\u0435\u0440\u0432\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438)<\/li>\n<li>sym_idx \u2014 \u0438\u043d\u0434\u0435\u043a\u0441 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 (\u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d, \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c 0)<\/li>\n<\/ul>\n<p>   \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 0 (\u0443\u0441\u043f\u0435\u0445) \u0438\u043b\u0438 DW_DLV_NOCOUNT (\u043e\u0448\u0438\u0431\u043a\u0430). <br \/>   \u0424\u0443\u043d\u043a\u0446\u0438\u044f dwarf_add_line_entry_b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0432 \u0441\u0435\u043a\u0446\u0438\u044e .debug_line \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0441\u0442\u0440\u043e\u043a\u0430\u0445 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u042d\u0442\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u044f \u0432\u044b\u0437\u044b\u0432\u0430\u044e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438:    <\/p>\n<pre><code class=\"cpp\">Dwarf_Unsigned dwarf_add_line_entry_b(      Dwarf_P_Debug dbg,      Dwarf_Unsigned file_index,      Dwarf_Addr code_offset,      Dwarf_Unsigned lineno,      Dwarf_Signed column_number,      Dwarf_Bool is_source_stmt_begin,      Dwarf_Bool is_basic_block_begin,      Dwarf_Bool is_epilogue_begin,      Dwarf_Bool is_prologue_end,      Dwarf_Unsigned isa,      Dwarf_Unsigned discriminator,      Dwarf_Error *error)<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>file_index \u2014 \u0438\u043d\u0434\u0435\u043a\u0441 \u0444\u0430\u0439\u043b\u0430 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0440\u0430\u043d\u0435\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 dwarf_add_file_decl (\u0441\u043c. \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u00bb)<\/li>\n<li>code_offset \u2014 \u0430\u0434\u0440\u0435\u0441 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438<\/li>\n<li>lineno \u2014 \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430<\/li>\n<li>column_number \u2014 \u043d\u043e\u043c\u0435\u0440 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430<\/li>\n<li>is_source_stmt_begin \u2014 1 \u0435\u0441\u043b\u0438 \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u0435\u0440\u0432\u0430\u044f \u0432 \u043a\u043e\u0434\u0435 \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 lineno (\u044f \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e 1)<\/li>\n<li>is_basic_block_begin \u2014 1 \u0435\u0441\u043b\u0438 \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u0435\u0440\u0432\u0430\u044f \u0432 \u0431\u043b\u043e\u043a\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 (\u044f \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e 0)<\/li>\n<li>is_epilogue_begin \u2014 1 \u0435\u0441\u043b\u0438 \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u0435\u0440\u0432\u0430\u044f \u0432 \u044d\u043f\u0438\u043b\u043e\u0433\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b (\u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0443 \u043c\u0435\u043d\u044f \u0432\u0441\u0435\u0433\u0434\u0430 0)<\/li>\n<li>is_prologue_end \u2014 1 \u0435\u0441\u043b\u0438 \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0432 \u043f\u0440\u043e\u043b\u043e\u0433\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b (\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e!)<\/li>\n<li>isa \u2014 instruction set architecture (\u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u043d\u0430\u0431\u043e\u0440\u0430 \u043a\u043e\u043c\u0430\u043d\u0434). \u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0434\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c DW_ISA_ARM_thumb \u0434\u043b\u044f ARM Cortex M3!<\/li>\n<li>discriminator. \u041e\u0434\u043d\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u044f (\u0444\u0430\u0439\u043b, \u0441\u0442\u0440\u043e\u043a\u0430, \u043a\u043e\u043b\u043e\u043d\u043a\u0430) \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u043c \u043c\u0430\u0448\u0438\u043d\u043d\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c. \u0412 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0434\u043b\u044f \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0442\u0430\u043a\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u0434\u0438\u0441\u043a\u0440\u0438\u043c\u0438\u043d\u0430\u0442\u043e\u0440\u044b. \u0415\u0441\u043b\u0438 \u0442\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u043d\u0435\u0442, \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c 0<\/li>\n<\/ul>\n<p>   \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 0 (\u0443\u0441\u043f\u0435\u0445) \u0438\u043b\u0438 DW_DLV_NOCOUNT (\u043e\u0448\u0438\u0431\u043a\u0430).  <br \/>   \u0418 \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0444\u0443\u043d\u043a\u0446\u0438\u044f dwarf_lne_end_sequence \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443:    <\/p>\n<pre><code class=\"cpp\">Dwarf_Unsigned dwarf_lne_end_sequence(      Dwarf_P_Debug dbg,      Dwarf_Addr address;      Dwarf_Error *error)<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>address \u2014 \u0430\u0434\u0440\u0435\u0441 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 <\/li>\n<\/ul>\n<p>   \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 0 (\u0443\u0441\u043f\u0435\u0445) \u0438\u043b\u0438 DW_DLV_NOCOUNT (\u043e\u0448\u0438\u0431\u043a\u0430). <br \/>   \u041d\u0430 \u044d\u0442\u043e\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b. <\/p>\n<h5>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442<\/h5>\n<p>   \u0412 \u043e\u0431\u0449\u0435\u043c, \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u044b. \u0423 \u043d\u0438\u0445 \u0435\u0441\u0442\u044c \u0438\u043c\u044f, \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u043f\u0430\u043c\u044f\u0442\u0438 (\u0438\u043b\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430), \u0433\u0434\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0435 \u0430 \u0442\u0430\u043a\u0436\u0435 \u0442\u0438\u043f \u044d\u0442\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0430\u044f \u2014 \u0435\u0435 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0415\u0434\u0438\u043d\u0438\u0446\u0430 \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u0435\u0441\u043b\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u2014 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0432\u0443\u044e\u0449\u0438\u0439 \u0443\u0437\u0435\u043b (\u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440, \u0443 \u043d\u0438\u0445 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u043c \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0441\u0430\u043c\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430). \u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u0432 \u043a\u0430\u043a\u043e\u043c \u0444\u0430\u0439\u043b\u0435, \u0441\u0442\u0440\u043e\u043a\u0435 \u0438 \u043a\u043e\u043b\u043e\u043d\u043a\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439. <br \/>   \u0412 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443, \u043d\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u0432\u0445\u043e\u0434\u0435 \u0432 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u043d\u0430 \u0441\u0442\u0435\u043a\u0435 \u0438\u043b\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435, \u0438\u043d\u043e\u0433\u0434\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u0435\u0441\u044c\u043c\u0430 \u043d\u0435\u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u044b\u043c. \u0412 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0435 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0442\u043e\u0433\u043e, \u0433\u0434\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u2014 \u0430\u0434\u0440\u0435\u0441\u043d\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f (location expressions). \u0410\u0434\u0440\u0435\u0441\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u2014 \u044d\u0442\u043e \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 (\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b DW_OP_\u0445\u0445\u0445\u0445) \u0434\u043b\u044f \u0444\u043e\u0440\u0442-\u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0439 \u0441\u0442\u0435\u043a\u043e\u0432\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b, \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u044d\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u0441 \u0432\u0435\u0442\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438, \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430\u043c\u0438 \u0438 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c\u0438. \u041d\u0435 \u0431\u0443\u0434\u0435\u043c \u043e\u0431\u043e\u0437\u0440\u0435\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u044d\u0442\u043e\u0442 \u044f\u0437\u044b\u043a, \u043d\u0430\u0441 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439:    <\/p>\n<ul>\n<li>DW_OP_addr \u2014 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0430\u0434\u0440\u0435\u0441 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439<\/li>\n<li>DW_OP_fbreg \u2014 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043e\u0442 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 (\u043e\u0431\u044b\u0447\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u0441\u0442\u0435\u043a\u0430)<\/li>\n<li>DW_OP_reg0\u2026 DW_OP_reg31 \u2014 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0435<\/li>\n<\/ul>\n<p>   \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u043d\u0443\u0436\u043d\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0443\u0441\u0442\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 (dwarf_new_expr), \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u043d\u0435\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 (dwarf_add_expr_addr, dwarf_add_expr_gen \u0438 \u0434\u0440.) \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u043a \u0443\u0437\u043b\u0443 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 DW_AT_location (dwarf_add_AT_location_expression). <br \/>   \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0443\u0441\u0442\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0435\u0433\u043e \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 \u0438\u043b\u0438 0 \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435:    <\/p>\n<pre><code class=\"cpp\">Dwarf_Expr dwarf_new_expr(      Dwarf_P_Debug dbg,      Dwarf_Error *error)<\/code><\/pre>\n<p>   \u0414\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u0432 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e dwarf_add_expr_gen:    <\/p>\n<pre><code class=\"cpp\">Dwarf_Unsigned dwarf_add_expr_gen(      Dwarf_P_Expr expr,      Dwarf_Small opcode,      Dwarf_Unsigned val1,      Dwarf_Unsigned val2,      Dwarf_Error *error)<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>expr \u2014 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f<\/li>\n<li>opcode \u2014 \u043a\u043e\u0434 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430 DW_OP_\u0445\u0445\u0445\u0445<\/li>\n<li>val1, val2 \u2014 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 (\u0441\u043c. \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442)<\/li>\n<\/ul>\n<p>   \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 DW_DLV_NOCOUNT \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435. <br \/>   \u0414\u043b\u044f \u044f\u0432\u043d\u043e\u0433\u043e \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0434\u043e\u043b\u0436\u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f dwarf_add_expr_addr:    <\/p>\n<pre><code class=\"cpp\">Dwarf_Unsigned dwarf_add_expr_addr(      Dwarf_P_Expr expr,      Dwarf_Unsigned address,      Dwarf_Signed sym_index,      Dwarf_Error *error)<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>expr \u2014 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f<\/li>\n<li>address \u2014 \u0430\u0434\u0440\u0435\u0441 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439<\/li>\n<li>sym_index \u2014 \u0438\u043d\u0434\u0435\u043a\u0441 \u0441\u0438\u043c\u0432\u043e\u043b\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 .symtab. \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d, \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c 0 <\/li>\n<\/ul>\n<p>   \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0442\u0430\u043a\u0436\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 DW_DLV_NOCOUNT \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435. <br \/>   \u0418 \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0435 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043a \u0443\u0437\u043b\u0443 \u043c\u043e\u0436\u043d\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 dwarf_add_AT_location_expr:    <\/p>\n<pre><code class=\"cpp\">Dwarf_P_Attribute dwarf_add_AT_location_expr(      Dwarf_P_Debug dbg,      Dwarf_P_Die ownerdie,      Dwarf_Half attr,      Dwarf_P_Expr loc_expr,      Dwarf_Error *error)<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>ownerdie \u2014 \u0443\u0437\u0435\u043b, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435<\/li>\n<li>attr \u2014 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 DW_AT_location)<\/li>\n<li>loc_expr \u2014 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 \u0440\u0430\u043d\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f<\/li>\n<\/ul>\n<p>   \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 \u0438\u043b\u0438 DW_DLV_NOCOUNT \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435. <br \/>   \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 (\u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440) \u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u2014 \u044d\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u0443\u0437\u043b\u044b \u0441 \u0442\u044d\u0433\u043e\u043c DW_TAG_variable,&nbsp;DW_TAG_formal_parameter \u0438 DW_TAG_const_type \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u0414\u043b\u044f \u043d\u0438\u0445 \u043d\u0443\u0436\u043d\u044b \u0442\u0430\u043a\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b:    <\/p>\n<ul>\n<li>\u0438\u043c\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439\/\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b (\u0444\u0443\u043d\u043a\u0446\u0438\u044f dwarf_add_AT_name, \u0441\u043c. \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0443\u0437\u043b\u0430\u00bb)<\/li>\n<li>\u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435, \u0433\u0434\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f (\u0430\u0442\u0440\u0438\u0431\u0443\u0442 DW_AT_decl_line), \u0444\u0443\u043d\u043a\u0446\u0438\u044f dwarf_add_AT_unsigned_const (\u0441\u043c. \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0443\u0437\u043b\u0430\u00bb)<\/li>\n<li>\u0438\u043d\u0434\u0435\u043a\u0441 \u0438\u043c\u0435\u043d\u0438 \u0444\u0430\u0439\u043b\u0430 (\u0430\u0442\u0440\u0438\u0431\u0443\u0442 DW_AT_decl_file), \u0444\u0443\u043d\u043a\u0446\u0438\u044f dwarf_add_AT_unsigned_const (\u0441\u043c. \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0443\u0437\u043b\u0430\u00bb)<\/li>\n<li>\u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439\/\u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b (\u0430\u0442\u0440\u0438\u0431\u0443\u0442 DW_AT_type \u2014 \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0440\u0430\u043d\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0442\u0438\u043f, \u0441\u043c. \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u0438\u043f\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445\u00bb)<\/li>\n<li>\u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 (\u0441\u043c. \u0432\u044b\u0448\u0435) \u2014 \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0438\u043b\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b<\/li>\n<li>\u0438\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u2014 \u0434\u043b\u044f \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b (\u0430\u0442\u0440\u0438\u0431\u0443\u0442 DW_AT_const_value, \u0441\u043c. \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0443\u0437\u043b\u0430\u00bb)<\/li>\n<\/ul>\n<p>  <\/p>\n<h5>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0435\u043a\u0446\u0438\u0439 \u0441 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 <\/h5>\n<p>   \u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0443\u0437\u043b\u043e\u0432 \u0434\u0435\u0440\u0435\u0432\u0430 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043a \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e elf-\u0441\u0435\u043a\u0446\u0438\u0439 \u0441 \u043d\u0435\u0439. \u042d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u0434\u0432\u0430 \u044d\u0442\u0430\u043f\u0430:    <\/p>\n<ul>\n<li>\u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e dwarf_transform_to_disk_form, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442\u044c \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u0443\u044e \u043d\u0430\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u0443\u0436\u043d\u044b\u0445 elf-\u0441\u0435\u043a\u0446\u0438\u0439 \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0435\u043a\u0446\u0438\u0438<\/li>\n<li>\u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0435\u043a\u0446\u0438\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f dwarf_get_section_bytes \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0438\u0442 \u043d\u0430\u043c \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u0441\u0435\u043a\u0446\u0438\u044e<\/li>\n<\/ul>\n<p>   \u0424\u0443\u043d\u043a\u0446\u0438\u044f     <\/p>\n<pre><code class=\"cpp\">dwarf_transform_to_disk_form (      Dwarf_P_Debug dbg,      Dwarf_Error* error)<\/code><\/pre>\n<p>   \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u043d\u0430\u043c\u0438 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442, \u043d\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0434\u0438\u0441\u043a. \u041e\u043d\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0438\u0442 \u043d\u0430\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 elf-\u0441\u0435\u043a\u0446\u0438\u0439 \u0438\u043b\u0438 DW_DLV_NOCOUNT \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0435\u043a\u0446\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u0432\u0430\u043d\u0430 callback-\u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u043b\u0438 \u043f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e dwarf_producer_init_c. \u042d\u0442\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0434\u043e\u043b\u0436\u043d\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043c\u044b \u0441\u0430\u043c\u0438. \u0415\u0435 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0442\u0430\u043a\u0430\u044f:    <\/p>\n<pre><code class=\"cpp\">typedef int (*Dwarf_Callback_Func_c)(      char* name,      int size,      Dwarf_Unsigned type,      Dwarf_Unsigned flags,      Dwarf_Unsigned link,      Dwarf_Unsigned info,      Dwarf_Unsigned* sect_name_index,      void * user_data,      int* error)<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li>name \u2014 \u0438\u043c\u044f elf-\u0441\u0435\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c<\/li>\n<li>size \u2014 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0435\u043a\u0446\u0438\u0438<\/li>\n<li>type \u2014 \u0442\u0438\u043f \u0441\u0435\u043a\u0446\u0438\u0438<\/li>\n<li>flags \u2014 \u0444\u043b\u0430\u0433\u0438 \u0441\u0435\u043a\u0446\u0438\u0438<\/li>\n<li>link \u2014 \u043f\u043e\u043b\u0435 \u0441\u0432\u044f\u0437\u0438 \u0441\u0435\u043a\u0446\u0438\u0438<\/li>\n<li>info \u2014 \u043f\u043e\u043b\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0441\u0435\u043a\u0446\u0438\u0438<\/li>\n<li>sect_name_index \u2014 \u043d\u0443\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441 \u0441\u0435\u043a\u0446\u0438\u0438 \u0441 \u0440\u0435\u043b\u043e\u043a\u0435\u0439\u0448\u0435\u043d\u0430\u043c\u0438 (\u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e)<\/li>\n<li>user_data \u2014 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u043c \u0442\u0430\u043a\u0438\u043c \u0436\u0435, \u043a\u0430\u043a\u0438\u043c \u043c\u044b \u0435\u0433\u043e \u0437\u0430\u0434\u0430\u043b\u0438 \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438<\/li>\n<li>error \u2014 \u0441\u044e\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043a\u043e\u0434 \u043e\u0448\u0438\u0431\u043a\u0438<\/li>\n<\/ul>\n<p>   \u0412 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b:    <\/p>\n<ul>\n<li>\u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u0441\u0435\u043a\u0446\u0438\u044e (\u0444\u0443\u043d\u043a\u0446\u0438\u044f elf_newscn, \u0441\u043c. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0435\u043a\u0446\u0438\u0439)<\/li>\n<li>\u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0441\u0435\u043a\u0446\u0438\u0438 (\u0444\u0443\u043d\u043a\u0446\u0438\u044f elf32_getshdr, \u0442\u0430\u043c \u0436\u0435)<\/li>\n<li>\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0435\u0433\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c (\u0441\u043c. \u0442\u0430\u043c \u0436\u0435). \u042d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u043e\u043b\u044f \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u0441\u0435\u043a\u0446\u0438\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u043d\u0430\u0448\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0435 \u043f\u043e\u043b\u044f sh_addr, sh_offset, sh_entsize \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0432 0, \u0430 sh_addralign \u0432 1<\/li>\n<li>\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0435\u043a\u0446\u0438\u0438 (\u0444\u0443\u043d\u043a\u0446\u0438\u044f elf_ndxscn, \u0441\u043c. \u00ab\u0421\u0435\u043a\u0446\u0438\u044f .symtab\u00bb) \u0438\u043b\u0438 -1 \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435 (\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0432 \u0432 error \u043a\u043e\u0434 \u043e\u0448\u0438\u0431\u043a\u0438)<\/li>\n<li>\u0442\u0430\u043a\u0436\u0435 \u043c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0435\u043a\u0446\u0438\u044e &quot;.rel&quot; (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435), \u0432\u0435\u0440\u043d\u0443\u0432 0 \u043f\u0440\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0435 \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/li>\n<\/ul>\n<p>   \u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f dwarf_transform_to_disk_form \u0432\u0435\u0440\u043d\u0435\u0442 \u043d\u0430\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u043a\u0446\u0438\u0439. \u041d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0439\u0442\u0438\u0441\u044c \u0432 \u0446\u0438\u043a\u043b\u0435 \u043e\u0442 0 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0435\u043a\u0446\u0438\u0438, \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0432 \u0442\u0430\u043a\u0438\u0435 \u0448\u0430\u0433\u0438:    <\/p>\n<ul>\n<li>\u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0441\u0435\u043a\u0446\u0438\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 dwarf_get_section_bytes: <br \/> \n<pre><code class=\"cpp\">Dwarf_Ptr dwarf_get_section_bytes(      Dwarf_P_Debug dbg,      Dwarf_Signed dwarf_section,      Dwarf_Signed *elf_section_index,      Dwarf_Unsigned *length,      Dwarf_Error* error)<\/code><\/pre>\n<p>   <\/p>\n<ul>\n<li> dwarf_section \u2014 \u043d\u043e\u043c\u0435\u0440 \u0441\u0435\u043a\u0446\u0438\u0438. \u0414\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0435 0..n, \u0433\u0434\u0435 n \u2014 \u0447\u0438\u0441\u043b\u043e, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u043d\u043e\u0435 \u043d\u0430\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 dwarf_transform_to_disk_form<\/li>\n<li>elf_section_index \u2014 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0438\u043d\u0434\u0435\u043a\u0441 \u0441\u0435\u043a\u0446\u0438\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435<\/li>\n<li>length \u2014 \u0434\u043b\u0438\u043d\u0430 \u044d\u0442\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/li>\n<li>error \u2014 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f<\/li>\n<\/ul>\n<p>   \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u043b\u0438 0 (\u0432 \u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, <br \/>   \u043a\u043e\u0433\u0434\u0430 \u0441\u0435\u043a\u0446\u0438\u0439 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c)<\/li>\n<li>\u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0441\u0435\u043a\u0446\u0438\u0438 (\u0444\u0443\u043d\u043a\u0446\u0438\u044f elf_newdata, \u0441\u043c. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0435\u043a\u0446\u0438\u0439) \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0435\u0433\u043e (\u0441\u043c. \u0442\u0430\u043c \u0436\u0435), \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0432:<br \/> \n<ul>\n<li>d_buf \u2014 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0435, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043d\u0430\u043c\u0438 \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/li>\n<li>d_size \u2014 \u0440\u0430\u0437\u043c\u0435\u0440 \u044d\u0442\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (\u0442\u0430\u043c \u0436\u0435)<\/li>\n<\/ul>\n<p>   <\/li>\n<\/ul>\n<h5>\u041e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439<\/h5>\n<p>   \u041f\u043e\u0441\u043b\u0435 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0435\u043a\u0446\u0438\u0439 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 libdwarf \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 dwarf_producer_finish:    <\/p>\n<pre><code class=\"cpp\">Dwarf_Unsigned dwarf_producer_finish(      Dwarf_P_Debug dbg,      Dwarf_Error* error)<\/code><\/pre>\n<p>   \u0424\u0443\u043d\u043a\u0446\u0438\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 DW_DLV_NOCOUNT \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435.  <br \/>   \u0417\u0430\u043c\u0435\u0447\u0443, \u0447\u0442\u043e \u0437\u0430\u043f\u0438\u0441\u044c \u043d\u0430 \u0434\u0438\u0441\u043a \u043d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f. \u0417\u0430\u043f\u0438\u0441\u044c \u043d\u0443\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438\u0437 \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u00ab\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 ELF \u2014 \u0417\u0430\u043f\u0438\u0441\u044c \u0444\u0430\u0439\u043b\u0430\u00bb.<\/p>\n<p>   <\/p>\n<h4>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h4>\n<p>   \u041d\u0430 \u044d\u0442\u043e\u043c \u0432\u0441\u0435.  <br \/>   \u041f\u043e\u0432\u0442\u043e\u0440\u044e\u0441\u044c, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u2014 \u0442\u0435\u043c\u0430 \u043e\u0447\u0435\u043d\u044c \u043e\u0431\u0448\u0438\u0440\u043d\u0430\u044f, \u0438 \u043c\u043d\u043e\u0433\u0438\u0445 \u0442\u0435\u043c \u044f \u043d\u0435 \u043a\u043e\u0441\u043d\u0443\u043b\u0441\u044f, \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043e\u0442\u043a\u0440\u044b\u0432 \u0437\u0430\u0432\u0435\u0441\u0443. \u0416\u0435\u043b\u0430\u044e\u0449\u0438\u0435 \u0436\u0435 \u043c\u043e\u0433\u0443\u0442 \u0443\u0433\u043b\u0443\u0431\u043b\u044f\u0442\u044c\u0441\u044f \u0434\u043e \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0441\u0442\u0438. <br \/>   \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0431\u0443\u0434\u0443\u0442 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u2014 \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c \u043d\u0430 \u043d\u0438\u0445 \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c.<\/p>\n<p>  <\/p>\n<h4>\u0421\u0441\u044b\u043b\u043a\u0438<\/h4>\n<p>   <\/p>\n<h5>ELF<\/h5>\n<p>   <\/p>\n<ul>\n<li><a href=\"http:\/\/www.skyfree.org\/linux\/references\/ELF_Format.pdf\">\u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f<\/a><\/li>\n<li><a href=\"http:\/\/infocenter.arm.com\/help\/topic\/com.arm.doc.ihi0044b\/IHI0044B_aaelf.pdf\">ELF for the ARM Architecture<\/a><\/li>\n<li><a href=\"http:\/\/people.freebsd.org\/%7Ejkoshy\/download\/libelf--\/article.html\">libELF by example<\/a><\/li>\n<li><a href=\"https:\/\/fedorahosted.org\/elfutils\/\">elfutils<\/a><\/li>\n<li><a href=\"http:\/\/www.nxmnpg.com\/3\/elf\">libelf man pages<\/a><\/li>\n<\/ul>\n<h5>DWARF<\/h5>\n<p>   <\/p>\n<ul>\n<li><a href=\"http:\/\/dwarfstd.org\/\">\u041e\u0444\u0441\u0430\u0439\u0442<\/a><\/li>\n<li><a href=\"http:\/\/dwarfstd.org\/doc\/DWARF4.pdf\">\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442<\/a><\/li>\n<li><a href=\"http:\/\/dwarfstd.org\/doc\/Debugging%20using%20DWARF-2012.pdf\">Introduction to the DWARF Debugging Format (Michael J. Eager)<\/a><\/li>\n<li><a href=\"http:\/\/sourceforge.net\/projects\/libdwarf\/\">libdwarf<\/a><\/li>\n<\/ul>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/199490\/\"> http:\/\/habrahabr.ru\/post\/199490\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">\n<h4>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h4>\n<p>   \u0421 \u043d\u0435\u0434\u0430\u0432\u043d\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u044f \u0443\u0432\u043b\u0435\u043a\u0441\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c\u0438. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 AVR, \u0437\u0430\u0442\u0435\u043c ARM. \u0414\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u0432\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430: \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440 \u0438 \u0421. \u041e\u0434\u043d\u0430\u043a\u043e, \u044f \u0444\u0430\u043d\u0430\u0442 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f <a href=\"http:\/\/ru.wikipedia.org\/wiki\/%D0%A4%D0%BE%D1%80%D1%82_%28%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%29\">\u0424\u043e\u0440\u0442<\/a> \u0438 \u0437\u0430\u043d\u044f\u043b\u0441\u044f \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0435\u0433\u043e \u043d\u0430 \u044d\u0442\u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u044b. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0438 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043d\u043e \u043d\u0438 \u0432 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u043d\u0438\u0445 \u043d\u0435 \u0431\u044b\u043b\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u044f \u0445\u043e\u0442\u0435\u043b: \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e gdb. \u0418 \u044f \u0437\u0430\u0434\u0430\u043b\u0441\u044f \u0446\u0435\u043b\u044c\u044e \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0431\u0435\u043b (\u043f\u043e\u043a\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f ARM). \u0412 \u043c\u043e\u0435\u043c \u0440\u0430\u0441\u043f\u043e\u0440\u044f\u0436\u0435\u043d\u0438\u0438 \u0431\u044b\u043b\u0430 \u043f\u043b\u0430\u0442\u0430 <a href=\"http:\/\/www.st.com\/web\/en\/catalog\/tools\/FM116\/SC959\/SS1532\/PF250863\">stm32vldiscovery<\/a> \u0441 32-\u0431\u0438\u0442\u043d\u044b\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u043c ARM Cortex-M3, 128\u043a\u0411 flash \u0438 8 \u043a\u0411 RAM, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0438 \u043d\u0430\u0447\u0430\u043b \u0441 \u043d\u0435\u0435. <br \/>   \u041f\u0438\u0441\u0430\u043b \u044f \u043a\u0440\u043e\u0441\u0441-\u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0442\u043e\u0440 \u0424\u043e\u0440\u0442\u0430 \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u043d\u0430 \u0424\u043e\u0440\u0442\u0435, \u0438 \u043a\u043e\u0434\u0430 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442, \u0442\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u043e\u0442 \u044f\u0437\u044b\u043a \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u044d\u043a\u0437\u043e\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c. \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0443\u0441\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u043c\u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f\u043c\u0438. \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438 \u043f\u043e \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u0443 \u043f\u043e\u0447\u0442\u0438 \u043d\u0435\u0442, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u043b\u0438\u0441\u044c \u043c\u043d\u043e\u0439 \u043f\u0443\u0442\u0435\u043c \u043f\u0440\u043e\u0431 \u0438 \u043e\u0448\u0438\u0431\u043e\u043a, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u2014 \u043f\u0443\u0442\u0435\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 gcc. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u043d\u0435 \u043a\u0430\u0441\u0430\u044f\u0441\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, relocation-\u043e\u0432 \u0438 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u0432\u0435\u0449\u0435\u0439. \u0422\u0435\u043c\u0430 \u043e\u0447\u0435\u043d\u044c \u043e\u0431\u0448\u0438\u0440\u043d\u0430 \u0438, \u043f\u0440\u0438\u0437\u043d\u0430\u044e\u0441\u044c, \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0441\u044f \u044f \u0441 \u043d\u0435\u0439 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 30, \u0447\u0442\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u044b\u043c.   <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-199490","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/199490","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=199490"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/199490\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=199490"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=199490"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=199490"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}