{"id":1164,"date":"2023-11-13T13:32:00","date_gmt":"2023-11-13T04:32:00","guid":{"rendered":"https:\/\/h4ck.kr\/?p=1164"},"modified":"2023-11-13T14:07:02","modified_gmt":"2023-11-13T05:07:02","slug":"coreutils-%ed%85%8c%ec%8a%a4%ed%8a%b8-klee%eb%a5%bc-%ec%82%ac%ec%9a%a9%ed%95%98%ec%97%ac-gnu-coreutils%eb%a5%bc-%ed%85%8c%ec%8a%a4%ed%8a%b8%ed%95%98%eb%8a%94-%eb%b0%a9%eb%b2%95%ec%97%90-%eb%8c%80","status":"publish","type":"post","link":"https:\/\/h4ck.kr\/?p=1164","title":{"rendered":"Coreutils \ud14c\uc2a4\ud2b8: KLEE\ub97c \uc0ac\uc6a9\ud558\uc5ec GNU Coreutils\ub97c \ud14c\uc2a4\ud2b8\ud558\ub294 \ubc29\ubc95\uc5d0 \ub300\ud55c \uc790\uc138\ud55c \uc124\uba85"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">KLEE\ub97c \uc0ac\uc6a9\ud558\uc5ec GNU Coreutils\ub97c \ud14c\uc2a4\ud2b8\ud558\ub294 \ubc29\ubc95\uc5d0 \ub300\ud55c \ud29c\ud1a0\ub9ac\uc5bc<\/h2>\n\n\n\n<p>\ub354 \uc790\uc138\ud55c KLEE \uc0ac\uc6a9 \uc124\uba85\uc73c\ub85c, <a href=\"https:\/\/klee.github.io\/docs\/coreutils-experiments\">OSDI&#8217;08 Coreutils \uc2e4\ud5d8 \uc124\uba85<\/a>\uc5d0 \ub530\ub77c KLEE\ub97c \uc0ac\uc6a9\ud558\uc5ec <a href=\"http:\/\/www.gnu.org\/software\/coreutils\/\">GNU Coreutils<\/a>\ub97c \ud14c\uc2a4\ud2b8\ud558\ub294 \ubc29\ubc95\uc744 \uc0b4\ud3b4\ubcf4\uaca0\ub2e4.<\/p>\n\n\n\n<p>\ubcf8 \ud29c\ud1a0\ub9ac\uc5bc\uc740 <strong>uClibc<\/strong> \ubc0f <strong>POSIX<\/strong> \ub7f0\ud0c0\uc784 \uc9c0\uc6d0\uacfc \ud568\uaed8 \uad6c\uc131 \ubc0f <a href=\"https:\/\/klee.github.io\/getting-started\">\ube4c\ub4dc\ub41c KLEE<\/a>\ub85c \uac00\uc815\ud55c\ub2e4.<\/p>\n\n\n\n<p>\ubaa8\ub4e0 \ud14c\uc2a4\ud2b8\ub294 64\ube44\ud2b8 \ub9ac\ub205\uc2a4 \uba38\uc2e0\uc5d0\uc11c \uc218\ud589\ub418\uc5c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1\ub2e8\uacc4: gcov\uc640 \ud568\uaed8 coreutils \ube4c\ub4dc\ud558\uae30<\/h2>\n\n\n\n<p>\uba3c\uc800 <a href=\"http:\/\/www.gnu.org\/software\/coreutils\/\">coreutils<\/a> \uc18c\uc2a4\ub97c \ub2e4\uc6b4\ub85c\ub4dc\ud558\uace0 \uc555\ucd95\uc744 \ud574\uc81c\ud55c\ub2e4.<\/p>\n\n\n\n<p>\uc774 \uc608\uc2dc\uc5d0\uc11c\ub294 OSDI \ub17c\ubb38\uc5d0\uc11c \uc0ac\uc6a9\ub41c \ubc84\uc804\ubcf4\ub2e4 \ub192\uc740 <a href=\"https:\/\/ftp.gnu.org\/gnu\/coreutils\/coreutils-8.32.tar.gz\">8.32 \ubc84\uc804<\/a>\uc744 \uc0ac\uc6a9\ud558\uc9c0\ub9cc, Coreutils\uc758 \uc5b4\ub5a4 \ubc84\uc804\uc774\ub4e0\uc9c0 \uac04\uc5d0 \uc0c1\uad00\uc5c6\ub2e4.<\/p>\n\n\n\n<p>\uadf8\ub7ec\ub098 \ucd5c\uadfc \ubc84\uc804\uc758 \uacbd\uc6b0, <strong>make -C src arch hostname<\/strong> \ub2e8\uacc4\ub97c \uac74\ub108\ub6f8 \uc218 \uc788\ub2e4. (8.32 \ubc84\uc804\uc5d0\uc11c\ub3c4 \uc774 \ub2e8\uacc4\uac00 \uc0dd\ub7b5\ub418\uc5c8\uc74c)<\/p>\n\n\n\n<p>LLVM\uc73c\ub85c \ube4c\ub4dc\ud558\uae30 \uc804\uc5d0 gcov \uc9c0\uc6d0\uc774 \uc788\ub294 coreutils \ubc84\uc804\uc744 \uba3c\uc800 \ube4c\ub4dc\ud574\ubcf4\uc790.<\/p>\n\n\n\n<p>\uc774\ud6c4\uc5d0 KLEE\uc5d0\uc11c \uc0dd\uc131\ud55c \ud14c\uc2a4\ud2b8 \ucf00\uc774\uc2a4\uc758 \ucee4\ubc84\ub9ac\uc9c0 \uc815\ubcf4\ub97c \uc5bb\ub294 \ub370 \uc0ac\uc6a9\ud560 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<p>coreutils \ub514\ub809\ud1a0\ub9ac \uc548\uc5d0\uc11c \uc6b0\ub9ac\ub294 \ud558\uc704 \ub514\ub809\ud1a0\ub9ac(obj-gcov)\uc5d0\uc11c \uc77c\ubc18\uc801\uc778 \uad6c\uc131 \ubc0f \ube4c\ub4dc \ub2e8\uacc4\ub97c \uc9c4\ud589\ud560 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<p>\ub2e8\uacc4\ub294 \ub2e4\uc74c\uacfc \uac19\ub2e4:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">coreutils-8.32$ mkdir obj-gcov\ncoreutils-8.32$ cd obj-gcov\nobj-gcov$ ..\/configure --disable-nls CFLAGS=\"-g -fprofile-arcs -ftest-coverage\"\n... verify that configure worked ...\nobj-gcov$ make -j4<\/pre>\n<\/div>\n<\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"955\" src=\"https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-12-1024x955.png\" alt=\"\" class=\"wp-image-1165\" srcset=\"https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-12-1024x955.png 1024w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-12-300x280.png 300w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-12-768x716.png 768w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-12.png 1115w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>-disable-nls<\/strong> \uc635\uc158\uc744 \uc0ac\uc6a9\ud558\uc5ec \ube4c\ub4dc\ud558\ub294 \uc774\uc720\ub294 \uc774\uac83\uc774 C \ub77c\uc774\ube0c\ub7ec\ub9ac\uc5d0 \ub354\uc6b1\ub354 \ub9ce\uc740 \ucd08\uae30\ud654\ub97c \ucd94\uac00\ud558\uae30 \ub54c\ubb38\uc774\ub2e4.<\/p>\n\n\n\n<p>KLEE\uac00 \uc2e4\ud589\ud560 \uc2e4\ud589 \ud30c\uc77c\uc740 \uc544\ub2c8\uc9c0\ub9cc, KLEE\uac00 \uc0dd\uc131\ud558\ub294 \ud14c\uc2a4\ud2b8 \ucf00\uc774\uc2a4\uac00 \uae30\uacc4\uc5b4 \ucf54\ub4dc\uac00 \uc5c6\ub294 \uc774\uc9c4 \ud30c\uc77c\uc5d0\uc11c \uc62c\ubc14\ub974\uac8c \uc791\ub3d9\ud560 \uac00\ub2a5\uc131\uc744 \ub192\uc774\uae30 \uc704\ud574 \ub3d9\uc77c\ud55c \ucef4\ud30c\uc77c\ub7ec \ud50c\ub798\uadf8\ub97c \uc0ac\uc6a9\ud558\ub824\uace0 \ud55c\ub2e4.<\/p>\n\n\n\n<p>\uc774\uc81c<strong> objc-gcov\/src<\/strong> \ub514\ub809\ud1a0\ub9ac\uc5d0 <strong>coreutils<\/strong> \uc138\ud2b8\uac00 \uc788\uc744 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<p>\uc608\ub97c \ub4e4\uc5b4:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">obj-gcov$ cd src\nobj-gcov\/src$ ls -l ls echo cat\n-rwxr-xr-x 1 ubuntu ubuntu 173208 Nov 12 06:36 cat\n-rwxr-xr-x 1 ubuntu ubuntu 146720 Nov 12 06:36 echo\n-rwxr-xr-x 1 ubuntu ubuntu 583632 Nov 12 06:36 ls\nobj-gcov\/src$ .\/cat --version\ncat (GNU coreutils) 8.32\nCopyright (C) 2020 Free Software Foundation, Inc.\nLicense GPLv3+: GNU GPL version 3 or later &lt;https:\/\/gnu.org\/licenses\/gpl.html>.\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.\n\nWritten by Torbjorn Granlund and Richard M. Stallman.<\/pre>\n<\/div>\n<\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"353\" src=\"https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-13-1024x353.png\" alt=\"\" class=\"wp-image-1166\" srcset=\"https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-13-1024x353.png 1024w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-13-300x103.png 300w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-13-768x264.png 768w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-13.png 1214w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\ucd94\uac00\ub85c, \uc774\ub7ec\ud55c \uc2e4\ud589 \ud30c\uc77c\uc740 <strong>gcov<\/strong> \uc9c0\uc6d0\uc744 \uc0ac\uc6a9\ud558\uc5ec \ube4c\ub4dc\ub418\uc5b4\uc57c \ud55c\ub2e4.<br>\ub530\ub77c\uc11c \uc2e4\ud589 \ud30c\uc77c \uc911 \ud558\ub098\ub97c \uc2e4\ud589\ud558\uba74 \ud604\uc7ac \ub514\ub809\ud130\ub9ac\uc5d0 <strong>.gcda<\/strong> \ud30c\uc77c\uc774 \uc0dd\uc131\ub41c\ub2e4.<br>\uc774 \ud30c\uc77c\uc5d0\ub294 \ud504\ub85c\uadf8\ub7a8 \uc2e4\ud589 \uc2dc \uc2e4\ud589\ub41c \ucf54\ub4dc\uc5d0 \ub300\ud55c \uc815\ud655\ud55c \uc815\ubcf4\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\ub2e4.<br>\uc790\uc138\ud55c \ub0b4\uc6a9\uc740 <a href=\"http:\/\/gcc.gnu.org\/onlinedocs\/gcc\/Gcov.html\">Gcov \ubb38\uc11c<\/a>\ub97c \ucc38\uc870\ud558\uae38 \ubc14\ub780\ub2e4.<\/p>\n\n\n\n<p>\uc6b0\ub9ac\ub294 <strong>gcov<\/strong> \ub3c4\uad6c \uc790\uccb4\ub97c \uc0ac\uc6a9\ud558\uc5ec \ucee4\ubc84\ub9ac\uc9c0 \uc815\ubcf4\uc758 \uc778\uac04\uc774 \uc77d\uc744 \uc218 \uc788\ub294 \ud615\ud0dc\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\ub2e4.<br>\uc774\ub97c \ud14c\uba74:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">src$ rm -f *.gcda # \ub0a8\uc544 \uc788\ub294 gcov \ud30c\uc77c \uc81c\uac70\nsrc$ .\/echo**\n\nsrc$ ls -l echo.gcda\n-rw-r--r-- 1 ubuntu ubuntu 640 Nov 12 06:53 echo.gcda\nsrc$ gcov echo\nFile '..\/src\/echo.c'\nLines executed:21.85% of 119\nCreating 'echo.c.gcov'\nCannot open source file ..\/src\/echo.c\n\nFile '..\/src\/system.h'\nLines executed:0.00% of 15\nCreating 'system.h.gcov'\nCannot open source file ..\/src\/system.h\n\nLines executed:19.40% of 134<\/pre>\n<\/div>\n<\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"471\" src=\"https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-14-1024x471.png\" alt=\"\" class=\"wp-image-1167\" srcset=\"https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-14-1024x471.png 1024w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-14-300x138.png 300w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-14-768x353.png 768w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-14.png 1214w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\uae30\ubcf8\uc801\uc73c\ub85c <strong>gcov<\/strong>\ub294 \ud504\ub85c\uadf8\ub7a8\uc5d0\uc11c \uc2e4\ud589\ub41c \ub77c\uc778 \uc218\ub97c \ubcf4\uc5ec\uc900\ub2e4. <br>(<strong>.h \ud5e4\ub354\ud30c\uc77c<\/strong>\uc5d0\ub294<strong> echo.c<\/strong>\ub85c \ucef4\ud30c\uc77c\ub41c \ucf54\ub4dc\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc74c)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2\ub2e8\uacc4: <strong>WLLVM \uc124\uce58\ud558\uae30<\/strong><\/h2>\n\n\n\n<p>KLEE\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\uc81c \uc18c\ud504\ud2b8\uc6e8\uc5b4\ub97c \ud14c\uc2a4\ud2b8\ud558\ub294 \uc5b4\ub824\uc6b4 \ubd80\ubd84 \uc911 \ud558\ub098\ub294 \ucd5c\uc885 \ud504\ub85c\uadf8\ub7a8\uc774 LLVM bitCode\ud30c\uc77c\uc774 \ub418\uace0 \ub124\uc774\ud2f0\ube0c \uc774\uc9c4 \ud30c\uc77c\uc774 \uc544\ub2c8\uc5b4\uc57c \ud55c\ub2e4\ub294 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<p>\uc18c\ud504\ud2b8\uc6e8\uc5b4\uc758 \ube4c\ub4dc \uc2dc\uc2a4\ud15c\uc740 <strong>&#8216;ar&#8217;, &#8216;libtool&#8217; \ubc0f &#8216;ld&#8217;\uc640 \uac19\uc740 \ub3c4\uad6c<\/strong>\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc73c\uba70 <br>\uc774\ub7ec\ud55c \ub3c4\uad6c\ub294 \uc77c\ubc18\uc801\uc73c\ub85c LLVM bitCode \ud30c\uc77c\uc744 \uc774\ud574\ud558\uc9c0 \ubabb\ud55c\ub2e4.<\/p>\n\n\n\n<p><strong>Coreutils<\/strong>\uc758 \uacbd\uc6b0, \uc6b0\ub9ac\ub294 \uc804\uccb4 \ud504\ub85c\uadf8\ub7a8 LLVM \ube44\ud2b8\ucf54\ub4dc \ud30c\uc77c\uc744 \ube4c\ub4dc\ud558\uae30 \uc704\ud55c \ub3c4\uad6c\uc778 <a href=\"https:\/\/github.com\/travitch\/whole-program-llvm\">whole-program-llvm (WLLVM)<\/a>\uc744 \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<p><strong>WLLVM<\/strong>\uc5d0\ub294 4\uac00\uc9c0 \ud30c\uc774\uc36c \uc2e4\ud589 \ud30c\uc77c\uc774 \ud3ec\ud568\ub418\uc5b4 \uc788\ub2e4.<\/p>\n\n\n\n<p><strong>wllvm<\/strong>\uc740 C \ucef4\ud30c\uc77c\ub7ec\uc774\uace0, <strong>wllvm++<\/strong>\uc740 C++ \ucef4\ud30c\uc77c\ub7ec\uc774\uba70, bitCode\ub97c \ube4c\ub4dc \uc81c\ud488(\uc624\ube0c\uc81d\ud2b8 \ud30c\uc77c, \uc2e4\ud589 \ud30c\uc77c, \ub77c\uc774\ube0c\ub7ec\ub9ac \ub610\ub294 \uc544\uce74\uc774\ube0c)\uc5d0\uc11c \ucd94\ucd9c\ud558\ub294 \ub3c4\uad6c\uc778 <strong>extract-bc<\/strong> \ubc0f \uc124\uc815 \uc624\ubc84\uc0ac\uc774\ud2b8\ub97c \uac10\uc9c0\ud558\ub294 <strong>wllvm-sanity-checker<\/strong>\ub3c4 \ud3ec\ud568\ub41c\ub2e4.<\/p>\n\n\n\n<p>\uc774 \ud29c\ud1a0\ub9ac\uc5bc\uc5d0\uc11c\ub294 <strong>WLLVM \ubc84\uc804 1.3.1(2023.11.12 \uae30\uc900 \ucd5c\uc2e0\ubc84\uc804)<\/strong>\uc744 \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<p><strong>whole-program-llvm<\/strong>\uc744 \uc124\uce58\ud558\ub294 \uac00\uc7a5 \uac04\ub2e8\ud55c \ubc29\ubc95\uc740 <strong>pip3<\/strong>\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ pip3 install --upgrade wllvm<\/pre>\n<\/div>\n<\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"218\" src=\"https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-15-1024x218.png\" alt=\"\" class=\"wp-image-1168\" srcset=\"https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-15-1024x218.png 1024w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-15-300x64.png 300w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-15-768x163.png 768w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-15.png 1214w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>WLLVM\uc744 \uc131\uacf5\uc801\uc73c\ub85c \uc2e4\ud589\ud558\ub824\uba74, \ud658\uacbd \ubcc0\uc218 <strong>LLVM_COMPILER<\/strong>\ub97c <strong>\uae30\ubcf8 LLVM \ucef4\ud30c\uc77c\ub7ec (dragonegg \ub610\ub294 clang<\/strong>)\ub85c \uc124\uc815\ud574\uc57c \ud55c\ub2e4.<\/p>\n\n\n\n<p>\uc774 \ud29c\ud1a0\ub9ac\uc5bc\uc5d0\uc11c\ub294 <strong>clang<\/strong>\uc744 \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ export LLVM_COMPILER=clang<\/pre>\n<\/div>\n<\/div>\n\n\n\n<p>\ud658\uacbd \ubcc0\uc218\ub97c \uc601\uad6c\uc801\uc73c\ub85c \uc124\uc815\ud558\uace0 \uc2f6\ub2e4\uba74, <br>\ud574\ub2f9 \ud658\uacbd \ubcc0\uc218\ub97c \uc258 \ud504\ub85c\ud30c\uc77c(ex: .bashrc)\uc5d0 \ucd94\uac00\uc2dc\ud0a4\uba74 \ub41c\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3\ub2e8\uacc4: LLVM\uc744 \uc0ac\uc6a9\ud558\uc5ec Coreutils \ube4c\ub4dc\ud558\uae30<\/h2>\n\n\n\n<p>\uc774\uc804\uacfc \ub9c8\ucc2c\uac00\uc9c0\ub85c, \ub124\uc774\ud2f0\ube0c \uc2e4\ud589 \ud30c\uc77c\uacfc LLVM \ubc84\uc804\uc5d0 \uc27d\uac8c \uc561\uc138\uc2a4\ud560 \uc218 \uc788\ub3c4\ub85d \ubcc4\ub3c4\uc758 \ub514\ub809\ud1a0\ub9ac\uc5d0\uc11c \ube4c\ub4dc\ud560 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<p>\ud574\ub2f9 \ub2e8\uacc4\ub294 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">coreutils-8.32$ mkdir obj-llvm\ncoreutils-8.32$ cd obj-llvm\nobj-llvm$ CC=wllvm ..\/configure --disable-nls CFLAGS=\"-g -O1 -Xclang -disable-llvm-passes -D__NO_STRING_INLINES  -D_FORTIFY_SOURCE=0 -U__OPTIMIZE__\"\n... verify that configure worked ...\nobj-llvm$ make -j4\n... verify that make worked ...<\/pre>\n<\/div>\n<\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"218\" src=\"https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-15-1-1024x218.png\" alt=\"\" class=\"wp-image-1169\" srcset=\"https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-15-1-1024x218.png 1024w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-15-1-300x64.png 300w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-15-1-768x163.png 768w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-15-1.png 1214w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\uc8fc\ubaa9\ud574\uc57c\ub420 2\uac00\uc9c0 \ubcc0\uacbd\uc0ac\ud56d\uc774 \uc788\ub2e4.<\/p>\n\n\n\n<p>\uccab\uc9f8, KLEE\ub97c \uc0ac\uc6a9\ud558\uc5ec \ud14c\uc2a4\ud2b8\ud560 \uc774\uc9c4 \ud30c\uc77c\uc5d0 <strong>gcov<\/strong> <strong>instrumentation<\/strong>\uc744 \ucd94\uac00\ud558\uace0 \uc2f6\uc9c0 \uc54a\uc544\uc11c <strong>-fprofile-arcs -ftest-coverage<\/strong> \ud50c\ub798\uadf8\ub97c \ube90\ub2e4.<br>\ub450\ubc88\uc9f8\ub85c, <strong>CFLAGS<\/strong>\uc5d0 <strong>-O1 -Xclang -disable-llvm-passes<\/strong> \ud50c\ub798\uadf8\ub97c \ucd94\uac00\uc2dc\ucf30\ub2e4.<br>\uc774\uac83\uc740 <strong>-O0<\/strong>\uc744 \ucd94\uac00\ud558\ub294 \uac83\uacfc \uc720\uc0ac\ud558\uc9c0\ub9cc, <strong>LLVM 5.0<\/strong> \uc774\ud6c4\uc5d0\ub294 <strong>-O0<\/strong>\uc73c\ub85c \ucef4\ud30c\uc77c\ud558\uba74 KLEE\uac00 \uc790\uccb4 \ucd5c\uc801\ud654\ub97c \uc218\ud589\ud558\uc9c0 \ubabb\ud558\uac8c \ub9cc\ub4e0\ub2e4. (\uc774\ud6c4\uc5d0 \uc6b0\ub9ac\uac00 \uc218\ud589\ud560 \uac83).<br>\ub530\ub77c\uc11c \uc6b0\ub9ac\ub294 <strong>-O1<\/strong>\ub85c \ucef4\ud30c\uc77c\ud558\uc9c0\ub9cc, \uba85\uc2dc\uc801\uc73c\ub85c \ubaa8\ub4e0 \ucd5c\uc801\ud654\ub97c \ube44\ud65c\uc131\ud654\ud55c\ub2e4.<br>\uc790\uc138\ud55c \ub0b4\uc6a9\uc740 <a href=\"https:\/\/github.com\/klee\/klee\/issues\/902\">\uc774 \ubb38\uc81c\uc810<\/a>\uc744 \ucc38\uace0\ud558\uae38 \ubc14\ub780\ub2e4.<\/p>\n\n\n\n<p><strong>O0 -Xclang -disable-O0-optnone<\/strong>\ub97c \uc0ac\uc6a9\ud560 \uc218\ub3c4 \uc788\uc9c0\ub9cc \ub098\uc911\uc5d0 \ucd5c\uc801\ud654\ub97c \uc218\ud589\ud560 \uac83\uc774\ubbc0\ub85c <strong>-O1 -Xclang -disable-llvm-passes<\/strong>\ub85c \ucef4\ud30c\uc77c\ud558\ub294 \uac83\uc774 \ub354 \ub098\uc740 \uc120\ud0dd\uc774\ub2e4.<br><strong>-O1<\/strong> \ubc84\uc804\uc740 \ucd5c\uc801\ud654\uc5d0 \ub354 \uc801\ud569\ud55c \ube44\ud2b8\ucf54\ub4dc\ub97c \uc0dd\uc131\ud558\ubbc0\ub85c \uc774 \uacbd\uc6b0\uc5d0\ub294 \uadf8\uac83(<strong>-O1<\/strong>)\uc744 \ub354 \uc120\ud638\ud55c\ub2e4.<\/p>\n\n\n\n<p><strong>D__NO_STRING_INLINES -D_FORTIFY_SOURCE=0 -U__OPTIMIZE__<\/strong>\ub294 \ub610 \ub2e4\ub978 \uc911\uc694\ud55c \ud50c\ub798\uadf8 \uc9d1\ud569\uc774\ub2e4.<br>LLVM\uc758 \ub098\uc911 \ubc84\uc804\uc5d0\uc11c <strong>clang<\/strong>\uc740 \ud2b9\uc815 \ub77c\uc774\ube0c\ub7ec\ub9ac \ud568\uc218\uc758 \uc548\uc815\uc801\uc778 \ubc84\uc804\uc744 \uc0dd\uc131\ud55c\ub2e4.<br>\uc608\ub97c \ub4e4\uc5b4, <strong>fprintf<\/strong>\ub97c <strong>__fprintf_chk<\/strong>\ub85c \ub300\uccb4\ud558\ub294\ub370, KLEE\uac00 \uc774\ub97c \ubaa8\ub378\ub9c1\ud558\uc9c0 \uc54a\ub294\ub2e4.<br>\uc774\uac83\uc740 \uc678\ubd80 \ud568\uc218\ub85c \ucc98\ub9ac\ub418\uace0 \uc0c1\ud0dc\ub97c \uad6c\uccb4\ud654\uc2dc\ud0a4\uac8c \ub418\ub294\ub370, \uc774\ub85c \uc778\ud574 \uc608\uc0c1\uce58 \ubabb\ud55c \uacb0\uacfc\uac00 \ubc1c\uc0dd\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p>\ubaa8\ub4e0 \uac83\uc774 \uc798 \uc9c4\ud589\ub418\uc5c8\ub2e4\uba74 \uc774\uc81c <strong>Coreutils \uc2e4\ud589 \ud30c\uc77c<\/strong>\uc774 \uc788\uc744 \uac83\uc774\ub2e4.<br>\uc608\ub97c \ub4e4\uba74:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">obj-llvm$ cd src\nsrc$ ls -l ls echo cat\n-rwxr-xr-x 1 ubuntu ubuntu 113544 Nov 12 07:28 cat\n-rwxr-xr-x 1 ubuntu ubuntu  92952 Nov 12 07:28 echo\n-rwxr-xr-x 1 ubuntu ubuntu 379776 Nov 12 07:28 ls\nsrc$ .\/cat --version\ncat (GNU coreutils) 8.32\nCopyright (C) 2020 Free Software Foundation, Inc.\nLicense GPLv3+: GNU GPL version 3 or later &lt;https:\/\/gnu.org\/licenses\/gpl.html>.\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.\n\nWritten by Torbjorn Granlund and Richard M. Stallman.<\/pre>\n<\/div>\n<\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"319\" src=\"https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-17-1024x319.png\" alt=\"\" class=\"wp-image-1171\" srcset=\"https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-17-1024x319.png 1024w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-17-300x93.png 300w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-17-768x239.png 768w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-17.png 1214w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>LLVM \ube44\ud2b8\ucf54\ub4dc \ud30c\uc77c \ub300\uc2e0 \uc2e4\ud589 \ud30c\uc77c\uc744 \uc5bb\uc740 \uac83\uc744 \uc54c \uc218 \uc788\ub2e4.<br>\uc774\uac83\uc740 WLLVM\uc774 \ub450 \ub2e8\uacc4\ub85c \uc791\ub3d9\ud558\uae30 \ub54c\ubb38\uc774\ub2e4.<\/p>\n\n\n\n<p>\uccab \ubc88\uc9f8 \ub2e8\uacc4\uc5d0\uc11c WLLVM\uc740 \ud45c\uc900 \ucef4\ud30c\uc77c\ub7ec\ub97c \ud638\ucd9c\ud558\uace0 \uac01 \uac1d\uccb4 \ud30c\uc77c\uc5d0 \ub300\ud574 \ube44\ud2b8\ucf54\ub4dc \ucef4\ud30c\uc77c\ub7ec\ub97c \ud638\ucd9c\ud558\uc5ec LLVM \ube44\ud2b8\ucf54\ub4dc\ub97c \uc0dd\uc131\ud55c\ub2e4.<br>WLLVM\uc740 \uc0dd\uc131\ub41c \ube44\ud2b8\ucf54\ub4dc \ud30c\uc77c\uc758 \uc704\uce58\ub97c \uac1d\uccb4 \ud30c\uc77c\uc758 \ud2b9\ubcc4\ud55c \uc139\uc158\uc5d0 \uc800\uc7a5\ud55c\ub2e4.<br>\uac1d\uccb4 \ud30c\uc77c\uc774 \ud568\uaed8 \uc5f0\uacb0\ub420 \ub54c, \uc704\uce58\ub294 \ubaa8\ub4e0 \uad6c\uc131 \ud30c\uc77c\uc758 \uc704\uce58\ub97c \uc800\uc7a5\ud558\uae30 \uc704\ud574 \uc5f0\uacb0\ub41c\ub2e4.<\/p>\n\n\n\n<p>\ube4c\ub4dc\uac00 \uc644\ub8cc\ub41c \ud6c4, WLLVM \uc720\ud2f8\ub9ac\ud2f0\uc778 <strong>extract-bc<\/strong>\ub97c \uc0ac\uc6a9\ud558\uc5ec \ud2b9\ubcc4\ud55c \uc139\uc158\uc758 \ub0b4\uc6a9\uc744 \uc77d\uace0 \ubaa8\ub4e0 \ube44\ud2b8\ucf54\ub4dc\ub97c \ub2e8\uc77c \uc804\uccb4 \ud504\ub85c\uadf8\ub7a8 \ube44\ud2b8\ucf54\ub4dc \ud30c\uc77c\ub85c \uc5f0\uacb0\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p>\ubaa8\ub4e0 Coreutils\uc758 LLVM \ube44\ud2b8\ucf54\ub4dc \ubc84\uc804\uc744 \uc5bb\uae30 \uc704\ud574, \ubaa8\ub4e0 \uc2e4\ud589 \ud30c\uc77c\uc744 <strong>extract-bc<\/strong>\uc744 \ud1b5\ud574 \ud638\ucd9c\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">src$ find . -executable -type f | xargs -I '{}' extract-bc '{}'\nsrc$ ls -l ls.bc\n-rw-r--r-- 1 ubuntu ubuntu 776796 Nov 12 08:09 ls.bc<\/pre>\n<\/div>\n<\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"201\" src=\"https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-18-1024x201.png\" alt=\"\" class=\"wp-image-1173\" srcset=\"https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-18-1024x201.png 1024w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-18-300x59.png 300w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-18-768x151.png 768w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/Untitled-18.png 1214w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">4\ub2e8\uacc4: KLEE\ub97c \uc778\ud130\ud504\ub9ac\ud130\ub85c \uc0ac\uc6a9\ud558\uae30<\/h2>\n\n\n\n<p>KLEE\uc758 \ud575\uc2ec\uc740 LLVM \ube44\ud2b8\ucf54\ub4dc\uc758 \uc778\ud130\ud504\ub9ac\ud130\uc77c \ubfd0\uc774\ub77c\ub294\uac83.<\/p>\n\n\n\n<p>\uc774\ub97c \ud14c\uba74, \uc774\uc804\uc5d0 \uc218\ud589\ud55c cat \uba85\ub839\uc744 KLEE\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\ud589\ud558\ub294 \ubc29\ubc95\uc740 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<p>\ucc38\uace0\ub85c, \uc774 \ub2e8\uacc4\ub97c \uc218\ud589\ud558\ub824\uba74 KLEE\ub97c uClibc\uc640 POSIX \ub7f0\ud0c0\uc784 \uc9c0\uc6d0\uc73c\ub85c \uad6c\uc131\ud558\uace0 \ube4c\ub4dc\ud574\uc57c \ud55c\ub2e4. (\ub9cc\uc57d \uc544\uc9c1 \ud558\uc9c0 \uc54a\uc558\ub2e4\uba74, <strong>\uc9c0\uae08 \uadf8 \uc791\uc5c5\uc744 \uc218\ud589\ud574\uc57c \ud55c\ub2e4<\/strong>.. <strong>OTL<\/strong> <a href=\"https:\/\/klee.github.io\/releases\/docs\/v1.3.0\/build-llvm29\/\">4\ubc88 \uacfc\uc815\uc778 <strong>(Optional) Build uclibc and the POSIX environment model<\/strong><\/a> \ucc38\uace0\ud560 \uac83)<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">src$ klee --libc=uclibc --posix-runtime .\/cat.bc --version\nKLEE: NOTE: Using klee-uclibc : \/usr\/local\/lib\/klee\/runtime\/klee-uclibc.bca\nKLEE: NOTE: Using model: \/usr\/local\/lib\/klee\/runtime\/libkleeRuntimePOSIX.bca\nKLEE: output directory is \"\/home\/klee\/coreutils-6.11\/obj-llvm\/src\/.\/klee-out-0\"\nUsing STP solver backend\nKLEE: WARNING ONCE: function \"vasnprintf\" has inline asm\nKLEE: WARNING: undefined reference to function: __ctype_b_loc\nKLEE: WARNING: undefined reference to function: klee_posix_prefer_cex\nKLEE: WARNING: executable has module level assembly (ignoring)\nKLEE: WARNING ONCE: calling external: syscall(16, 0, 21505, 42637408)\nKLEE: WARNING ONCE: calling __user_main with extra arguments.\nKLEE: WARNING ONCE: calling external: getpagesize()\nKLEE: WARNING ONCE: calling external: vprintf(43649760, 51466656)\ncat (GNU coreutils) 6.11\n\nLicense GPLv3+: GNU GPL version 3 or later\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.\n\nWritten by Torbjorn Granlund and Richard M. Stallman.\nCopyright (C) 2008 Free Software Foundation, Inc.\nKLEE: WARNING ONCE: calling close_stdout with extra arguments.\n\nKLEE: done: total instructions = 28988\nKLEE: done: completed paths = 1\nKLEE: done: generated tests = 1<\/pre>\n<\/div>\n<\/div>\n\n\n\n<p>\uc774\ubc88\uc5d0\ub294 \ud6e8\uc52c \ub354 \ub9ce\uc740 \ucd9c\ub825\uc774 \ub098\uc654\ub2e4! \ud55c\ubc88 \uc0b4\ud3b4\ubcf4\ub3c4\ub85d \ud558\uc790.<\/p>\n\n\n\n<p>\uba3c\uc800 KLEE \uba85\ub839\uc5b4\ubd80\ud130 \ub9d0\ud558\uc790\uba74, KLEE \uba85\ub839\uc904\uc758 \uc77c\ubc18\uc801\uc778 \ud615\ud0dc\ub294 \uba3c\uc800 KLEE \uc790\uccb4\uc758 \uc778\uc218, \uadf8 \ub2e4\uc74c\uc5d0 \uc2e4\ud589\ud560 LLVM \ube44\ud2b8\ucf54\ub4dc \ud30c\uc77c(cat.bc), \uadf8\ub9ac\uace0 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \uc804\ub2ec\ud560 \uc778\uc218\ub4e4(&#8211;version\uc774 \uc774 \uacbd\uc6b0\uc5d0 \ud574\ub2f9)\uc774 \uc788\ub2e4.<\/p>\n\n\n\n<p>\uc77c\ubc18 \ub124\uc774\ud2f0\ube0c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc2e4\ud589\ud558\uba74 C \ub77c\uc774\ube0c\ub7ec\ub9ac\uc640 \ub9c1\ud06c\ub418\uc5c8\uc744 \uac83\uc774\ub2e4.<br>\ud558\uc9c0\ub9cc, \uc774 \uacbd\uc6b0\uc5d0\ub294 KLEE\uac00 LLVM \ube44\ud2b8\ucf54\ub4dc \ud30c\uc77c\uc744 \uc9c1\uc811 \uc2e4\ud589\ud558\uace0 \uc788\ub2e4.<br>KLEE\uac00 \ud6a8\uacfc\uc801\uc73c\ub85c \uc791\ub3d9\ud558\ub824\uba74, \ud504\ub85c\uadf8\ub7a8\uc774 \ud638\ucd9c\ud560 \uc218 \uc788\ub294 \ubaa8\ub4e0 \uc678\ubd80 \ud568\uc218\uc5d0 \ub300\ud55c \uc815\uc758\uac00 \ud544\uc694\ud558\ub2e4.<br>\uc6b0\ub9ac\ub294 KLEE\uc640 \ud568\uaed8 \uc0ac\uc6a9\ud558\uae30 \uc704\ud574 uClibc C \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc218\uc815\ud588\ub2e4.<br><strong>&#8211;libc=uclibc KLEE <\/strong>\uc778\uc218\ub294 KLEE\uc5d0\uac8c \uadf8 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \ub85c\ub4dc\ud558\uace0 \uc2e4\ud589 \uc804\uc5d0 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \ub9c1\ud06c\ud558\ub3c4\ub85d \uc9c0\uc2dc\ud55c\ub2e4.<\/p>\n\n\n\n<p>\ub9c8\ucc2c\uac00\uc9c0\ub85c, \uc77c\ubc18 \ub124\uc774\ud2f0\ube0c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740<strong> write()<\/strong>\uc640 \uac19\uc740 \ub0ae\uc740 \uc218\uc900\uc758 \uae30\ub2a5\uc744 \uc81c\uacf5\ud558\ub294 \uc6b4\uc601 \uccb4\uc81c \uc704\uc5d0\uc11c \uc2e4\ud589\ub41c\ub2e4.<br>\uc774\ub7ec\ud55c \ud568\uc218\ub4e4\uc5d0 \ub300\ud55c \uc815\uc758\uac00 KLEE\uc5d0\ub3c4 \ud544\uc694\ud558\ub2e4.<br>KLEE\uc640 uClibc \ub77c\uc774\ube0c\ub7ec\ub9ac\uc640 \ud568\uaed8 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 POSIX \ub7f0\ud0c0\uc784\uc744 \uc81c\uacf5\ud558\uc5ec \ub300\ubd80\ubd84\uc758 \uba85\ub839\ud589 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c \uc0ac\uc6a9\ub418\ub294, \ub300\ubd80\ubd84\uc758 \uc6b4\uc601 \uccb4\uc81c \uae30\ub2a5\uc744 \uc81c\uacf5\ud55c\ub2e4.<br><strong>&#8211;posix-runtime <\/strong>\uc778\uc218\ub294 KLEE\uc5d0\uac8c \uc774 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub3c4 \ub9c1\ud06c\ud558\ub3c4\ub85d \uc9c0\uc2dc\ud55c\ub2e4.<\/p>\n\n\n\n<p>\uc774\uc804\uacfc \uac19\uc774 cat\uc740 \ubc84\uc804 \uc815\ubcf4\ub97c \ucd9c\ub825\ud55c\ub2e4. (\uc774\ubc88\uc5d0\ub294 \ubaa8\ub4e0 \ud14d\uc2a4\ud2b8\uac00 \ucd9c\ub825\ub428).<br>\ud558\uc9c0\ub9cc \uc774\uc81c\ub294 KLEE\uac00 \ucd94\uac00\ub85c \uc5ec\ub7ec \uc815\ubcf4\ub97c \ucd9c\ub825\ud574\uc900\ub2e4.<br>\uc774 \uacbd\uc6b0 \ub300\ubd80\ubd84\uc758 \uc774 \uacbd\uace0\ub294 \ubb34\ud574\ud558\uc9c0\ub9cc, \uc644\uc804\ud55c \uc774\ud574\ub97c \uc704\ud574 \uc774\uac83\uc774 \ubb34\uc5c7\uc744 \uc758\ubbf8\ud558\ub294\uc9c0 \uc124\uba85\ud574\ubcf4\uaca0\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>undefined reference to function: ___ctype_b_loc<\/strong>: <br>\uc774 \uacbd\uace0\ub294 \ud504\ub85c\uadf8\ub7a8\uc5d0 __ctype_b_loc \ud568\uc218\ub97c \ud638\ucd9c\ud558\ub294 \ubd80\ubd84\uc774 \uc788\uc9c0\ub9cc, \ud574\ub2f9 \ud568\uc218\uac00 \uc5b4\ub514\uc5d0\uc11c\ub3c4 \uc815\uc758\ub418\uc9c0 \uc54a\uc558\ub2e4\ub294 \uac83\uc744 \uc758\ubbf8\ud55c\ub2e4. (\ub9cc\uc57d uClibc\uc640 POSIX \ub7f0\ud0c0\uc784\uc744 \ub9c1\ud06c\ud558\uc9c0 \uc54a\uc558\ub2e4\uba74 \uc774\ub7ec\ud55c \uacbd\uace0\uac00 \ud6e8\uc52c \ub354 \ub9ce\uc774 \ub098\uc654\uc744 \uac83\uc774\ub2e4). <br>\ud504\ub85c\uadf8\ub7a8\uc774 \uc2e4\ud589\ub418\ub294 \ub3d9\uc548 \uc774 \ud568\uc218\ub97c \ud638\ucd9c\ud558\uac8c \ub418\uba74, KLEE\uac00 \uc774\ub97c \ud574\uc11d\ud558\uc9c0 \ubabb\ud558\uace0 \ud504\ub85c\uadf8\ub7a8\uc744 \uc885\ub8cc\ud560 \uc218 \uc788\ub2e4.<\/li>\n\n\n\n<li><strong>executable has module level assembly (ignoring)<\/strong>: <br>\uc2e4\ud589 \ud30c\uc77c\uc5d0\ub294 \ud30c\uc77c \ub808\ubca8 \uc778\ub77c\uc778 \uc5b4\uc148\ube14\ub9ac\uac00 \uc788\ub294 \ud30c\uc77c\uc774 \ud3ec\ud568\ub418\uc5b4 \uc788\ub294\ub370, KLEE\uac00 \uc774\ub97c \uc774\ud574\ud560 \uc218 \uc5c6\ub2e4\ub294 \uac83\uc744 \uc758\ubbf8\ud55c\ub2e4. <br>\uc774 \uacbd\uc6b0, \uc774\uac83\uc740 uClibc\uc5d0\uc11c \ub098\uc628 \uac83\uc774\uba70 \uc0ac\uc6a9\ub418\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 \uc548\uc804\ud558\ub2e4.<\/li>\n\n\n\n<li><strong>calling __user_main with extra arguments<\/strong>: <br>\ud568\uc218\uac00 \uc608\uc0c1\ubcf4\ub2e4 \ub354 \ub9ce\uc740 \uc778\uc218\ub85c \ud638\ucd9c\ub418\uc5c8\ub2e4\ub294 \uac83\uc744 \uc758\ubbf8\ud55c\ub2e4. \uac70\uc758 \ud56d\uc0c1 \ubb34\ud574\ud558\ub2e4\uace0 \ubcf4\uba74 \ub418\ub294\ub370, \uc774 \uacbd\uc6b0 <strong>__user_main<\/strong>\uc740 \uc0ac\uc2e4\uc0c1 <strong>cat\uc758 main()<\/strong> \ud568\uc218\uc774\uba70, uClibc\uc640 \ub9c1\ud06c\ud560 \ub54c KLEE\uac00 \uc774\ub984\uc744 \ubc14\uafbc\ub2e4. <br>main()\uc740 \uc2dc\uc791\uc2dc uClibc \uc790\uccb4\uc5d0\uc11c \ud658\uacbd \ud3ec\uc778\ud130\uc640 \uac19\uc740 \ucd94\uac00\uc801\uc778 \uc778\uc218\ub85c \ud638\ucd9c\ub41c\ub2e4.<\/li>\n\n\n\n<li><strong>calling external: getpagesize()<\/strong>: <br>\ud504\ub85c\uadf8\ub7a8\uc5d0\uc11c \uc0ac\uc6a9\ub418\uc9c0\ub9cc, \uc815\uc758\ub418\uc9c0 \uc54a\uc740 \ud568\uc218\ub97c KLEE\uac00 \ud638\ucd9c\ud558\ub294 \uc608\ub97c \uc758\ubbf8\ud55c\ub2e4. \uc774\ub7ec\ud55c \uacbd\uc6b0 KLEE\uac00 \uc2e4\uc81c \ud568\uc218\ub97c \ud638\ucd9c\ud558\ub824\uace0 \uc2dc\ub3c4\ud55c\ub2e4. <br>\uadf8 \ud568\uc218\uac00 \ud504\ub85c\uadf8\ub7a8 \uba54\ubaa8\ub9ac \uc911 \uc5b4\ub5a4 \ubd80\ubd84\uc5d0\ub3c4 \uc4f0\uac70\ub098 \uc2ec\ubcfc \uac12\uc744 \uc870\uc791\ud558\uc9c0 \uc54a\ub294 \ud55c, \uc774\uac83\uc740 \ub54c\ub85c\ub294 \uc548\uc804\ud560 \uc218 \uc788\ub2e4.<br>\uc608\ub97c \ub4e4\uc5b4 <strong>getpagesize()<\/strong> \ud568\uc218\uac00 \uc788\ub294\ub370, \uc774\ub294 \ub2e8\uc21c\ud788 \uc0c1\uc218\ub97c \ubc18\ud658\ud55c\ub2e4.<\/li>\n<\/ul>\n\n\n\n<p>\uc77c\ubc18\uc801\uc73c\ub85c KLEE\ub294 \ud2b9\uc815 \uacbd\uace0\ub97c \ud55c \ubc88\ub9cc \ucd9c\ub825\ud55c\ub2e4. \ub610\ud55c \uc774\ub7ec\ud55c \uacbd\uace0\ub294 <strong>KLEE \ucd9c\ub825 \ub514\ub809\ud1a0\ub9ac\uc758 warnings.txt<\/strong>\uc5d0\ub3c4 \uae30\ub85d\ub41c\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>5\ub2e8\uacc4: \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \uc2ec\ubcfc\ub9ad \ub370\uc774\ud130\ub97c \uc18c\uac1c\ud558\uae30<\/strong><\/h2>\n\n\n\n<p>KLEE\uac00 \ud504\ub85c\uadf8\ub7a8\uc744 \uc77c\ubc18\uc801\uc73c\ub85c \ud574\uc11d\ud560 \uc218 \uc788\uc74c\uc744 \ubcf4\uc558\uc9c0\ub9cc, KLEE\uc758 \uc2e4\uc81c \ubaa9\uc801\uc740 \ud504\ub85c\uadf8\ub7a8\uc758 \uc77c\ubd80 \uc785\ub825\uc744 \uc2ec\ubcfc\ub9ad\ud558\uac8c \ub9cc\ub4e4\uc5b4 \ud504\ub85c\uadf8\ub7a8\uc744 \ubcf4\ub2e4 \uccb4\uacc4\uc801\uc73c\ub85c \ud0d0\uad6c\ud558\ub294 \uac83\uc774\ub2e4.<br>\uc608\ub97c \ub4e4\uc5b4, echo \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uc11c KLEE\ub97c \uc2e4\ud589\ud574\ubcf4\uaca0\ub2e4.<br>uClibc\uc640 POSIX \ub7f0\ud0c0\uc784\uc744 \uc0ac\uc6a9\ud560 \ub54c, KLEE\ub294 \ub7f0\ud0c0\uc784 \ub77c\uc774\ube0c\ub7ec\ub9ac \ub0b4\uc5d0 \uc81c\uacf5\ub418\ub294 \ud2b9\ubcc4\ud55c \ud568\uc218(<strong>klee_init_env<\/strong>)\ub85c \ud504\ub85c\uadf8\ub7a8\uc758 main() \ud568\uc218\ub97c \ub300\uccb4\ud55c\ub2e4.<br>\uc774 \ud568\uc218\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc77c\ubc18\uc801\uc778 \uba85\ub839\ud589 \ucc98\ub9ac\ub97c \ubcc0\uacbd\ud558\uba70, \ud2b9\ud788 \uc2ec\ubcfc\ub9ad \uc778\uc218\ub97c \uc0dd\uc131\ud558\ub294 \uac83\uc744 \uc9c0\uc6d0\ud55c\ub2e4.<\/p>\n\n\n\n<p>\uc608\ub97c \ub4e4\uc5b4,<strong> &#8211;help<\/strong>\ub97c \uc804\ub2ec\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\uc740 \uacb0\uacfc\uac00 \ub098\uc628\ub2e4:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">src$ klee --libc=uclibc --posix-runtime .\/echo.bc --help\n...\n\nusage: (klee_init_env) [options] [program arguments]\n  -sym-arg &lt;N>              - Replace by a symbolic argument with length N\n  -sym-args &lt;MIN> &lt;MAX> &lt;N> - Replace by at least MIN arguments and at most\n                              MAX arguments, each with maximum length N\n  -sym-files &lt;NUM> &lt;N>      - Make NUM symbolic files ('A', 'B', 'C', etc.),\n                              each with size N\n  -sym-stdin &lt;N>            - Make stdin symbolic with size N.\n  -sym-stdout               - Make stdout symbolic.\n  -max-fail &lt;N>             - Allow up to N injected failures\n  -fd-fail                  - Shortcut for '-max-fail 1'\n...<\/pre>\n<\/div>\n<\/div>\n\n\n\n<p>\uc608\ub97c \ub4e4\uc5b4, \uc2ec\ubcfc\ub9ad\ud55c 3\uae00\uc790 \uc778\uc218\ub97c \uc0ac\uc6a9\ud558\uc5ec <strong>echo<\/strong>\ub97c \uc2e4\ud589\ud574\ubcf4\uaca0\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">src$ klee --libc=uclibc --posix-runtime .\/echo.bc --sym-arg 3\nKLEE: NOTE: Using klee-uclibc : \/usr\/local\/lib\/klee\/runtime\/klee-uclibc.bca\nKLEE: NOTE: Using model: \/usr\/local\/lib\/klee\/runtime\/libkleeRuntimePOSIX.bca\nKLEE: output directory is \"\/home\/klee\/coreutils-6.11\/obj-llvm\/src\/.\/klee-out-1\"\nUsing STP solver backend\nKLEE: WARNING ONCE: function \"vasnprintf\" has inline asm\nKLEE: WARNING: undefined reference to function: __ctype_b_loc\nKLEE: WARNING: undefined reference to function: klee_posix_prefer_cex\nKLEE: WARNING: executable has module level assembly (ignoring)\nKLEE: WARNING ONCE: calling external: syscall(16, 0, 21505, 39407520)\nKLEE: WARNING ONCE: calling __user_main with extra arguments.\n..\nKLEE: WARNING: calling close_stdout with extra arguments.\n...\nKLEE: WARNING ONCE: calling external: printf(42797984, 41639952)\n..\nKLEE: WARNING ONCE: calling external: vprintf(41640400, 52740448)\n..\nEcho the STRING(s) to standard output.\n\n  -n             do not output the trailing newline\n  -e             enable interpretation of backslash escapes\n  -E             disable interpretation of backslash escapes (default)\n      --help     display this help and exit\n      --version  output version information and exit\nUsage: .\/echo.bc [OPTION]... [STRING]...\necho (GNU coreutils) 6.11\nCopyright (C) 2008 Free Software Foundation, Inc.\nIf -e is in effect, the following sequences are recognized:\n\n  \\\\0NNN   the character whose ASCII code is NNN (octal)\n  \\\\\\\\     backslash\n  \\\\a     alert (BEL)\n  \\\\b     backspace\n\nLicense GPLv3+: GNU GPL version 3 or later\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.\n\n  \\\\c     suppress trailing newline\n  \\\\f     form feed\n  \\\\n     new line\n  \\\\r     carriage return\n  \\\\t     horizontal tab\n  \\\\v     vertical tab\n\nNOTE: your shell may have its own version of echo, which usually supersedes\nthe version described here.  Please refer to your shell's documentation\nfor details about the options it supports.\n\nReport bugs to &lt;bug-coreutils@gnu.org>.\nWritten by FIXME unknown.\n\nKLEE: done: total instructions = 64546\nKLEE: done: completed paths = 25\nKLEE: done: generated tests = 25<\/pre>\n<\/div>\n<\/div>\n\n\n\n<p>\uc774\uacf3\uc758 \uacb0\uacfc\ub294 \uc870\uae08 \ub354 \ud765\ubbf8\ub85c\uc6b4\ub370, KLEE\ub294 \ud504\ub85c\uadf8\ub7a8\uc744 \ud1b5\ud574 25\uac1c\uc758 \uacbd\ub85c\ub97c \ud0d0\uc0c9\ud574\ub0c8\ub2e4.<br>\ubaa8\ub4e0 \uacbd\ub85c\uc758 \ucd9c\ub825\uc774 \uc11c\ub85c \uc11e\uc5ec \uc788\uae34 \ud558\uc9c0\ub9cc, \ubb34\uc791\uc704 \ubb38\uc790\ub97c \ubc18\ubcf5 \ucd9c\ub825\ud558\ub294 \uac83\ubfd0\ub9cc \uc544\ub2c8\ub77c \uc77c\ubd80 \ud14d\uc2a4\ud2b8 \ube14\ub85d\ub3c4 \ucd9c\ub825\ub418\uc5c8\uc74c\uc744 \uc54c \uc218 \uc788\ub2e4.<br><strong>coreutils\uc758 echo<\/strong>\uac00 \uc77c\ubd80 \uc778\uc218\ub97c \ubc1b\ub294\ub2e4\ub294 \uac83\uc5d0 \ub180\ub77c\uc2e4 \ud150\ub370, <br>\uc774 \uacbd\uc6b0\uc5d0\ub294 <strong>&#8211;v<\/strong>(\ubc84\uc804\uc744 \ub098\ud0c0\ub0b4\ub294 <strong>&#8211;version<\/strong>\uc758 \uc904\uc784\ub9d0)\uc640 <strong>&#8211;h<\/strong>(\ub3c4\uc6c0\ub9d0\uc744 \ub098\ud0c0\ub0b4\ub294 <strong>&#8211;help<\/strong>\uc758 \uc904\uc784\ub9d0) \uc635\uc158\uc744 \ud0d0\uc0c9\ud55c \uacbd\uc6b0\uc774\ub2e4.<\/p>\n\n\n\n<p>KLEE\uc758 \ub0b4\ubd80 \ud1b5\uacc4\ub97c \uac04\ub2e8\ud788 \ubcfc \uc218 \uc788\ub3c4\ub85d \ucd9c\ub825 \ub514\ub809\ud1a0\ub9ac\uc5d0\uc11c <strong>klee-stats<\/strong>\ub97c \uc2e4\ud589\ud558\uc5ec KLEE\uc758 \ub0b4\ubd80 \ud1b5\uacc4\uc758 \uac04\ub2e8\ud55c \uc694\uc57d\uc744 \uc5bb\uc744 \uc218\ub3c4 \uc788\ub2e4. <br>(\ucc38\uace0: KLEE\ub294 \ud56d\uc0c1 \uac00\uc7a5 \ucd5c\uadfc\uc758 \ucd9c\ub825 \ub514\ub809\ud1a0\ub9ac\uc5d0<strong> klee-last<\/strong>\ub77c\ub294 \uc2ec\ubcfc\ub9ad \ub9c1\ud06c\ub97c \uc0dd\uc131\ud568)<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">src$ klee-stats klee-last\n------------------------------------------------------------------------\n|  Path   |  Instrs|  Time(s)|  ICov(%)|  BCov(%)|  ICount|  TSolver(%)|\n------------------------------------------------------------------------\n|klee-last|   64546|     0.15|    22.07|    14.14|   19943|       62.97|\n------------------------------------------------------------------------<\/pre>\n<\/div>\n<\/div>\n\n\n\n<p>\uc5ec\uae30\uc11c <strong>ICov<\/strong>\ub294 \ucee4\ubc84\ub41c LLVM \uba85\ub839\uc5b4 \ubc31\ubd84\uc728\uc744 \ub098\ud0c0\ub0b4\uba70, <strong>BCov<\/strong>\ub294 \ucee4\ubc84\ub41c \ubd84\uae30\uc758 \ubc31\ubd84\uc728\uc744 \uc758\ubbf8\ud55c\ub2e4.<br>\ubc31\ubd84\uc728\uc774 \uc65c \uc774\ub807\uac8c \ub0ae\uc740\uc9c0 \uad81\uae08\ud560 \uc218 \uc788\ub2e4.<br><strong>echo<\/strong>\uac00 \uc5bc\ub9c8\ub098 \ub354 \ub9ce\uc740 \ucf54\ub4dc\ub97c \uac00\uc9c8 \uc218 \uc788\uc744\uae4c?<\/p>\n\n\n\n<p>\uc8fc\ub41c \uc774\uc720\ub294 \uc774\ub7ec\ud55c \uc22b\uc790\uac00 \ube44\ud2b8\ucf54\ub4dc \ud30c\uc77c\uc758 \ubaa8\ub4e0 \uba85\ub839\uc5b4\ub098 \ubd84\uae30\ub97c \uc0ac\uc6a9\ud558\uc5ec \uacc4\uc0b0\ub418\uae30 \ub54c\ubb38\uc774\ub2e4.<br>\uc774\uc5d0\ub294 \uc2e4\ud589\ub418\uc9c0 \uc54a\uc744 \uc218\ub3c4 \uc788\ub294 \ub9ce\uc740 \ub77c\uc774\ube0c\ub7ec\ub9ac \ucf54\ub4dc\uac00 \ud3ec\ud568\ub41c\ub2e4.<\/p>\n\n\n\n<p><strong>&#8211;optimize<\/strong> \uc635\uc158\uc744 KLEE\uc5d0 \uc804\ub2ec\ud558\uc5ec \uc774 \ubb38\uc81c (\ub610\ub294 \uae30\ud0c0 \ubb38\uc81c)\ub97c \ud574\uacb0\ud560 \uc218 \uc788\ub2e4.<br>\uc774 \uc635\uc158\uc740 KLEE\uac00 \uc2e4\ud589\ud558\uae30 \uc804\uc5d0 \ube44\ud2b8\ucf54\ub4dc \ubaa8\ub4c8\uc5d0 \ub300\ud574 LLVM \ucd5c\uc801\ud654 \ud328\uc2a4\ub97c \uc2e4\ud589\ud558\ub3c4\ub85d \ud558\uba70 \ud2b9\ud788 dead code\ub97c \uc81c\uac70\ud55c\ub2e4.<br>\ube44\ud2b8\ucf54\ub4dc \ud30c\uc77c\uc744 \uc0ac\uc6a9\ud560 \ub54c\ub294 \uc8fc\ub85c \uc774 \ud50c\ub798\uadf8\ub97c \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \uc88b\ub2e4.<\/p>\n\n\n\n<p>\ub2e4\uc74c\uc740 <strong>&#8211;optimize<\/strong>\ub97c \ud65c\uc131\ud654\ud588\uc744 \ub54c\uc758 \uacb0\uacfc\uc774\ub2e4:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">src$ klee --optimize --libc=uclibc --posix-runtime .\/echo.bc --sym-arg 3\n...\nKLEE: done: total instructions = 33991\nKLEE: done: completed paths = 25\nKLEE: done: generated tests = 25\nsrc$ klee-stats klee-last\n------------------------------------------------------------------------\n|  Path   |  Instrs|  Time(s)|  ICov(%)|  BCov(%)|  ICount|  TSolver(%)|\n------------------------------------------------------------------------\n|klee-last|   33991|     0.13|    30.16|    21.91|    8339|       80.66|\n------------------------------------------------------------------------<\/pre>\n<\/div>\n<\/div>\n\n\n\n<p>\uc774\ubc88\uc5d0\ub294 \uba85\ub839\uc5b4 \ucee4\ubc84\ub9ac\uc9c0\uac00 <strong>\uc57d 6% \uc815\ub3c4 \uc0c1\uc2b9<\/strong>\ud558\uc600\uc73c\uba70, KLEE\uac00 <strong>\ub354 \ube68\ub9ac \uc2e4\ud589\ub418\uace0 \ub354 \uc801\uc740 \uba85\ub839\uc5b4\ub97c \uc2e4\ud589<\/strong>\ud558\ub294 \uac83\uc744 \ubcfc \uc218 \uc788\ub2e4.<br>\ub098\uba38\uc9c0 \ucf54\ub4dc\uc758 \ub300\ubd80\ubd84\uc740 \uc5ec\uc804\ud788 \ub77c\uc774\ube0c\ub7ec\ub9ac \ud568\uc218\uc5d0 \uc788\uc73c\uba70, \ucd5c\uc801\ud654 \ud504\ub85c\uadf8\ub7a8\uc774 \uc81c\uac70\ud558\uc9c0 \ubabb\ud558\ub294 \uc704\uce58\uc5d0 \uc788\ub2e4.<\/p>\n\n\n\n<p>\uc774\ub97c \ud655\uc778\ud558\uace0 echo \ub0b4\ubd80\uc5d0\uc11c \ucee4\ubc84\ub418\uc9c0 \uc54a\uc740 \ucf54\ub4dc\ub97c \ucc3e\uc73c\ub824\uba74, <br>KLEE \uc2e4\ud589 \uacb0\uacfc\ub97c \uc2dc\uac01\ud654\ud558\uae30 \uc704\ud574 <a href=\"https:\/\/kcachegrind.sourceforge.net\/html\/Home.html\">KCachegrind<\/a>\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6\ub2e8\uacc4: <a href=\"https:\/\/kcachegrind.sourceforge.net\/html\/Home.html\"><strong>kcachegrind<\/strong><\/a>\ub97c \uc0ac\uc6a9\ud558\uc5ec KLEE\uc758 \uc9c4\ud589 \uc0c1\ud669 \uc2dc\uac01\ud654\ud558\uae30<\/h2>\n\n\n\n<p>KCachegrind\ub294 valgrind\uc758 callgrind \ud50c\ub7ec\uadf8\uc778\uc744 \uc704\ud574 \uc791\uc131\ub41c \ud6cc\ub96d\ud55c \ud504\ub85c\ud30c\uc77c\ub9c1 \uc2dc\uac01\ud654 \ub3c4\uad6c\uc774\ub2e4.<\/p>\n\n\n\n<p>\uc774\ubbf8 \uc124\uce58\ub418\uc5b4 \uc788\uc9c0 \uc54a\ub2e4\uba74, \ud604\ub300\uc801\uc778 Linux \ubc30\ud3ec\ud310\uc5d0\uc11c\ub294 \uc77c\ubc18\uc801\uc73c\ub85c \ud50c\ub7ab\ud3fc\uc758 \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc124\uce58 \ub3c4\uad6c(\uc608: apt-get \ub610\ub294 yum)\ub97c \ud1b5\ud574 \uc27d\uac8c \uc124\uce58\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p>KLEE\ub294 \uae30\ubcf8\uc801\uc73c\ub85c \ud14c\uc2a4\ud2b8 \ucd9c\ub825 \ub514\ub809\ud1a0\ub9ac\uc5d0 <strong>run.istats \ud30c\uc77c<\/strong>\uc744 \uc791\uc131\ud558\ub294\ub370, \uc774 \ud30c\uc77c\uc740 \uc0ac\uc2e4 <strong>KCachegrind \ud30c\uc77c<\/strong>\uc774\ub2e4.<\/p>\n\n\n\n<p>\uc774 \uc608\uc81c\uc5d0\uc11c\ub294<strong> &#8211;optimize<\/strong>\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uace0 \uc2e4\ud589\ud55c<strong> run.istats <\/strong>\ud30c\uc77c\uc774\ubbc0\ub85c \uacb0\uacfc\ub97c \ub354 \uc27d\uac8c \uc774\ud574\ud560 \uc218 \uc788\uc744 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<p><strong>KCachegrind<\/strong>\uac00 \uc774\ubbf8 \uc124\uce58\ub418\uc5b4 \uc788\uc73c\uba74 \ub2e4\uc74c \uba85\ub839\uc744 \uc2e4\ud589\ud558\uba74 \ub41c\ub2e4:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">src$ kcachegrind klee-last\/run.istats<\/pre>\n<\/div>\n<\/div>\n\n\n\n<p><strong>KCachegrind<\/strong>\ub97c \uc5f4\uba74 \uc544\ub798\uc640 \ube44\uc2b7\ud55c \ucc3d\uc774 \ud45c\uc2dc\ub41c\ub2e4.<\/p>\n\n\n\n<p><strong>&#8220;Instructions&#8221;<\/strong> \ud1b5\uacc4\uac00 \uc120\ud0dd\ub418\uc5b4 \uc788\ub294\uc9c0 \ud655\uc778\ud558\uae30 \uc704\ud574 \uba54\ub274\uc5d0\uc11c <strong>&#8220;View&#8221; &gt; &#8220;Primary Event Type&#8221; &gt; &#8220;Instructions&#8221;<\/strong>\ub97c \uc120\ud0dd\ud558\uace0, <strong>&#8220;Source Code&#8221;<\/strong> \ubdf0\uac00 \uc120\ud0dd\ub418\uc5b4 \uc788\ub294\uc9c0 \ud655\uc778\ud574\uc57c \ub41c\ub2e4. <br>(\uc544\ub798 \uc2a4\ud06c\ub9b0\uc0f7\uc5d0\uc11c \uc624\ub978\ucabd \ud328\ub110\uc5d0 \ud574\ub2f9)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"748\" src=\"https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/coreutils_kc_0-1024x748.png\" alt=\"\" class=\"wp-image-1174\" srcset=\"https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/coreutils_kc_0-1024x748.png 1024w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/coreutils_kc_0-300x219.png 300w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/coreutils_kc_0-768x561.png 768w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/coreutils_kc_0.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>KCachegrind<\/strong> \uc790\uccb4\uac00 \ubcf5\uc7a1\ud55c \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8\uc774\uae30\uc5d0 \uad00\uc2ec \uc788\ub294 \uc0ac\uc6a9\uc790\ub294 \ub354 \ub9ce\uc740 \uc815\ubcf4\uc640 \ubb38\uc11c\ub97c \uc704\ud574 KCachegrind \uc6f9\uc0ac\uc774\ud2b8\ub97c \ucc38\uc870\ud574\uc57c \ud55c\ub2e4.<br>\uadf8\ub7ec\ub098 \uae30\ubcf8\uc801\uc73c\ub85c \ud55c \ud328\ub110\uc740 &#8220;Flat Profile&#8221;\uc744 \ubcf4\uc5ec\uc8fc\uba70, \uc774\ub294 \uac01 \ud568\uc218\uc5d0\uc11c \uc2e4\ud589\ub41c \uba85\ub839\uc5b4 \uc218\ub97c \ubcf4\uc5ec\uc8fc\ub294 \ubaa9\ub85d\uc774\ub2e4.<\/p>\n\n\n\n<p><strong>&#8220;Self&#8221; \uc5f4<\/strong>\uc740 \ud568\uc218 \uc790\uccb4\uc5d0\uc11c \uc2e4\ud589\ub41c \uba85\ub839\uc5b4 \uc218\uc774\uba70, <strong>&#8220;Incl&#8221; (\ud3ec\ud568) \uc5f4<\/strong>\uc740 \ud568\uc218\uc5d0\uc11c \uc2e4\ud589\ub41c \uba85\ub839\uc5b4 \uc218 \ub610\ub294 \ud574\ub2f9 \ud568\uc218\uac00 \ud638\ucd9c\ud55c \ud568\uc218 \uc911 \uc5b4\ub290 \uac83\uc774\ub098 \uc2e4\ud589\ud55c \uba85\ub839\uc5b4 \uc218\ub97c \uc758\ubbf8\ud55c\ub2e4.<br>KLEE\ub294 \uc2e4\ud589\uc5d0 \uad00\ud55c \uc5ec\ub7ec \ud1b5\uacc4\ub97c \ud3ec\ud568\ud558\uace0 \uc788\ub2e4.<\/p>\n\n\n\n<p>\uad00\uc2ec \uc788\ub294 \ud1b5\uacc4\ub85c, <strong>&#8220;Uncovered Instructions&#8221; <\/strong>\u2190 \uc774 \ud1b5\uacc4\ub97c \uc120\ud0dd\ud558\uace0,<br>\ud568\uc218 \ubaa9\ub85d\uc744 \ub2e4\uc2dc \uc815\ub82c\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\uc740 \uacb0\uacfc\ub97c \ubcfc \uc218 \uc788\uc744 \uac83\uc774\ub2e4:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"712\" src=\"https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/coreutils_kc_1-1024x712.png\" alt=\"\" class=\"wp-image-1175\" srcset=\"https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/coreutils_kc_1-1024x712.png 1024w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/coreutils_kc_1-300x209.png 300w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/coreutils_kc_1-768x534.png 768w, https:\/\/h4ck.kr\/wp-content\/uploads\/2023\/11\/coreutils_kc_1.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\ub300\ubd80\ubd84\uc758 \ucee4\ubc84\ub418\uc9c0 \uc54a\uc740 \uba85\ub839\uc5b4\uac00 \uc6b0\ub9ac\uac00 \uc608\uc0c1\ud55c \ub300\ub85c \ub77c\uc774\ube0c\ub7ec\ub9ac \ucf54\ub4dc\uc5d0 \uc788\uc74c\uc744 \uc54c \uc218 \uc788\ub2e4.<br>\uadf8\ub7ec\ub098 <strong>__user_main<\/strong> \ud568\uc218\ub97c \uc120\ud0dd\ud558\uba74 <strong>echo<\/strong> \uc790\uccb4 \ub0b4\uc5d0\uc11c \ucee4\ubc84\ub418\uc9c0 \uc54a\uc740 \ucf54\ub4dc\ub97c \ucc3e\uc744 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p>\uc774 \uacbd\uc6b0 \ub300\ubd80\ubd84\uc758 \ucee4\ubc84\ub418\uc9c0 \uc54a\uc740 \uba85\ub839\uc5b4\ub294 <strong>do_v9 \ubcc0\uc218\uc5d0 \uc758\ud574 \ubcf4\ud638\ub418\ub294 \ud070 if \ubb38<\/strong> \ub0b4\uc5d0 \uc788\ub2e4.<br>\uc880 \ub354 \uc0b4\ud3b4\ubcf4\uba74, \uc774\uac83\uc774 <strong>-e<\/strong>\uac00 \uc804\ub2ec\ub420 \ub54c <strong>true<\/strong>\ub85c \uc124\uc815\ub418\ub294 \ud50c\ub798\uadf8\uc784\uc744 \uc54c \uc218 \uc788\ub2e4.<br>KLEE\uac00 \uc774 \ucf54\ub4dc\ub97c \ud0d0\uad6c\ud558\uc9c0 \uc54a\uc740 \uc774\uc720\ub294 \uc6b0\ub9ac\uac00 \ud558\ub098\uc758 \uc2ec\ubcfc\ub9ad \uc778\uc218\ub9cc \uc804\ub2ec\ud588\uae30 \ub54c\ubb38\uc774\ub2e4.<\/p>\n\n\n\n<p>\uc774 \ucf54\ub4dc\ub97c \uc2e4\ud589\ud558\ub824\uba74 \ub2e4\uc74c\uacfc \uac19\uc740 \uba85\ub839\uc904\uc774 \ud544\uc694\ud558\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ echo -e \\\\a<\/pre>\n<\/div>\n<\/div>\n\n\n\n<p>\uc2e4\uc81c\ub85c <strong>KCachegrind \uc22b\uc790\ub97c \ud574\uc11d<\/strong>\ud558\ub824\ub294 \uacbd\uc6b0, <br>\uc774\ud574\ud574\uc57c \ud560 \ubbf8\ubb18\ud55c \uc810\uc740 \uc774 \uc22b\uc790\uac00 \ubaa8\ub4e0 \uc0c1\ud0dc\ub97c \ud1b5\ud569\ud558\uc5ec \ub204\uc801\ub41c \uc774\ubca4\ud2b8\ub97c \ud3ec\ud568\ud55c\ub2e4\ub294 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<p>\uc608\ub97c \ub4e4\uc5b4 \ub2e4\uc74c\uacfc \uac19\uc740 \ucf54\ub4dc\ub97c \uace0\ub824\ud574\ubcf4\uba74\u2026<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Line 1:      a = 1;\nLine 2:      if (...)\nLine 3:        printf(\"hello\\\\n\");\nLine 4:      b = c;<\/pre>\n<\/div>\n<\/div>\n\n\n\n<p>\uc77c\ubc18\uc801\uc778 \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8\uc5d0\uc11c\ub294 Line 1\uc758 \ubb38\uc7a5\uc774 \ud55c \ubc88\ub9cc \uc2e4\ud589\ub418\uc5c8\ub2e4\uba74, Line 4\uc758 \ubb38\uc7a5\uc740 \ucd5c\ub300 \ud55c \ubc88 \uc2e4\ud589\ub420 \uc218 \uc788\ub2e4.<br>\uadf8\ub7ec\ub098 KLEE\uac00 \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8\uc744 \uc2e4\ud589\ud560 \ub54c\ub294, Line 2\uc5d0\uc11c \ubcc4\ub3c4\uc758 \ud504\ub85c\uc138\uc2a4\ub97c \uc0dd\uc131\ud558\uace0 \ubd84\uae30\ud560 \uc218 \uc788\ub2e4.<br>\uc774 \uacbd\uc6b0, Line 4\ub294 Line 1\ubcf4\ub2e4 \ub354 \ub9ce\uc774 \uc2e4\ud589\ub420 \uc218 \uc788\ub2e4!<\/p>\n\n\n\n<p>\ub610 \ub2e4\ub978 \uc720\uc6a9\ud55c \uc815\ubcf4\uac00 \uc788\ub294\ub370, KLEE\ub294 \uc2e4\uc81c \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8\uc774 \uc2e4\ud589\ub418\ub294 \ub3d9\uc548 \uc8fc\uae30\uc801\uc73c\ub85c <strong>run.istats<\/strong> \ud30c\uc77c\uc744 \uc791\uc131\ud55c\ub2e4.<br>\uc774\ub294 \uae34 \uc2e4\ud589 \uc2dc\uac04\uc744 \uac00\uc9c4 \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8\uc758 \uc0c1\ud0dc\ub97c \ubaa8\ub2c8\ud130\ub9c1\ud558\ub294 \ud55c \uac00\uc9c0 \ubc29\ubc95\uc744 \uc81c\uacf5\ud55c\ub2e4.<br>(\ub610 \ub2e4\ub978 \ubc29\ubc95\uc740 <strong>klee-stats<\/strong> \ub3c4\uad6c\ub97c \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95\uc774 \ub418\uaca0\ub2e4)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>7\ub2e8\uacc4: KLEE\uac00 \uc0dd\uc131\ud55c \ud14c\uc2a4\ud2b8 \ucf00\uc774\uc2a4\ub97c \ub2e4\uc2dc \uc2e4\ud589\ud558\uae30<\/strong><\/h2>\n\n\n\n<p>\uc7a0\uc2dc KLEE\uc5d0\uc11c \uba40\uc5b4\uc838 KLEE\uac00 \uc0dd\uc131\ud55c \ud14c\uc2a4\ud2b8 \ucf00\uc774\uc2a4\ub9cc \uc0b4\ud3b4\ubcf4\uaca0\ub2e4.<\/p>\n\n\n\n<p><strong>klee-last<\/strong> \ub514\ub809\ud1a0\ub9ac \ub0b4\ubd80\ub97c \uc0b4\ud3b4\ubcf4\uba74<strong> 25\uac1c\uc758 .ktest <\/strong>\ud30c\uc77c\uc774 \uc788\uc744 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">src$ ls klee-last\nassembly.ll\t  test000004.ktest  test000012.ktest  test000020.ktest\ninfo\t\t  test000005.ktest  test000013.ktest  test000021.ktest\nmessages.txt\t  test000006.ktest  test000014.ktest  test000022.ktest\nrun.istats\t  test000007.ktest  test000015.ktest  test000023.ktest\nrun.stats\t  test000008.ktest  test000016.ktest  test000024.ktest\ntest000001.ktest  test000009.ktest  test000017.ktest  test000025.ktest\ntest000002.ktest  test000010.ktest  test000018.ktest  warnings.txt\ntest000003.ktest  test000011.ktest  test000019.ktest<\/pre>\n<\/div>\n<\/div>\n\n\n\n<p>\uc774\ub7ec\ud55c \ud30c\uc77c\uc740 KLEE\uac00 \ub530\ub790\ub358 \uacbd\ub85c\ub97c \uc7ac\ud604\ud558\uae30 \uc704\ud574 \uc2ec\ubcfc\ub9ad \ub370\uc774\ud130\uc5d0 \uc0ac\uc6a9\ud560 \uc2e4\uc81c \uac12\ub4e4\uc744 \ud3ec\ud568\ud558\uace0 \uc788\ub2e4. <br>(\ucf54\ub4dc \ucee4\ubc84\ub9ac\uc9c0\ub97c \uc5bb\uae30 \uc704\ud55c \uac83\uc774\ub4e0, \ubc84\uadf8\ub97c \uc7ac\ud604\ud558\uae30 \uc704\ud55c \uac83\uc774\ub4e0)<\/p>\n\n\n\n<p>\ub610\ud55c \uc774 \ud30c\uc77c\uc740 \uac12\uc744 \ucd94\uc801\ud558\uace0 \ub7f0\ud0c0\uc784 \ubc84\uc804\uc744 \ucd94\uc801\ud558\uae30 \uc704\ud574 POSIX \ub7f0\ud0c0\uc784\uc5d0\uc11c \uc0dd\uc131\ud55c \ucd94\uac00\uc801\uc778 \uba54\ud0c0\ub370\uc774\ud130\ub97c \ud3ec\ud568\ud55c\ub2e4.<\/p>\n\n\n\n<p><strong>ktest-tool<\/strong>\uc744 \uc0ac\uc6a9\ud558\uc5ec \ud55c \ud30c\uc77c\uc758 \ub0b4\uc6a9\uc744 \uac1c\ubcc4\uc801\uc73c\ub85c \uc0b4\ud3b4\ubcfc \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ ktest-tool klee-last\/test000001.ktest\nktest file : 'klee-last\/test000001.ktest'\nargs       : ['.\/echo.bc', '--sym-arg', '3']\nnum objects: 2\nobject    0: name: 'arg0'\nobject    0: size: 4\nobject    0: data: '\\\\x00\\\\x00\\\\x00\\\\x00'\nobject    1: name: 'model_version'\nobject    1: size: 4\nobject    1: data: '\\\\x01\\\\x00\\\\x00\\\\x00'<\/pre>\n<\/div>\n<\/div>\n\n\n\n<p>\uc774 \uacbd\uc6b0, \uc774 \ud14c\uc2a4\ud2b8 \ucf00\uc774\uc2a4\ub294 \uac12 <code>\\x00\\x00\\x00\\x00<\/code>\uc744 \uccab \ubc88\uc9f8 \uc778\uc218\ub85c \uc804\ub2ec\ud574\uc57c \ud568\uc744 \ub098\ud0c0\ub0b8\ub2e4.<br>\uadf8\ub7ec\ub098 .ktest \ud30c\uc77c\uc740 \uc77c\ubc18\uc801\uc73c\ub85c \uc9c1\uc811 \ud655\uc778\ud558\uae30 \uc704\ud55c \uac83\uc774 \uc544\ub2c8\ub2e4.<\/p>\n\n\n\n<p>POSIX \ub7f0\ud0c0\uc784\uc744 \uc704\ud574 <strong>.ktest <\/strong>\ud30c\uc77c\uc744 \uc77d\uace0 KLEE\uac00 \ub530\ub790\ub358 \uacbd\ub85c\ub97c \uc7ac\ud604\ud558\ub294\ub370 \ud544\uc694\ud55c \ub370\uc774\ud130\ub97c \uc790\ub3d9\uc73c\ub85c \uc804\ub2ec\ud558\ub294 \ub3c4\uad6c\uc778 <strong>klee-replay<\/strong>\ub97c \uc81c\uacf5\ud55c\ub2e4.<\/p>\n\n\n\n<p>\uc774 \ub3c4\uad6c\uac00 \uc5b4\ub5bb\uac8c \uc791\ub3d9\ud558\ub294\uc9c0 \ubcf4\ub824\uba74, \ub124\uc774\ud2f0\ube0c \uc2e4\ud589 \ud30c\uc77c\uc744 \ube4c\ub4dc\ud55c \ub514\ub809\ud1a0\ub9ac\ub85c \ub3cc\uc544\uac00\uba74 \ud655\uc778\ud560 \uc218 \uc788\ub2e4:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">src$ cd ..\nobj-llvm$ cd ..\ncoreutils-6.11$ cd obj-gcov\nobj-gcov$ cd src\nsrc$ ls -l echo\n-rwxrwxr-x 1 klee klee 135984 Nov 21 21:58 echo<\/pre>\n<\/div>\n<\/div>\n\n\n\n<p><strong>klee-replay<\/strong> \ub3c4\uad6c\ub97c \uc0ac\uc6a9\ud558\ub824\uba74 \uc2e4\ud589\ud560 \uc2e4\ud589 \ud30c\uc77c\uacfc \uc0ac\uc6a9\ud560 <strong>.ktest<\/strong> \ud30c\uc77c\uc744 \uc9c0\uc815\ud558\uba74 \ub41c\ub2e4.<\/p>\n\n\n\n<p>\ud504\ub85c\uadf8\ub7a8 \uc778\uc218, \uc785\ub825 \ud30c\uc77c \ub4f1\uc740 \ubaa8\ub450<strong> .ktest \ud30c\uc77c<\/strong>\uc758 \ub370\uc774\ud130\ub97c \uae30\ubc18\uc73c\ub85c \uc0dd\uc131\ub41c\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">src$ klee-replay .\/echo ..\/..\/obj-llvm\/src\/klee-last\/test000001.ktest\nklee-replay: TEST CASE: ..\/..\/obj-llvm\/src\/klee-last\/test000001.ktest\nklee-replay: ARGS: \".\/echo\" \"\"\n\nklee-replay: EXIT STATUS: NORMAL (0 seconds)<\/pre>\n<\/div>\n<\/div>\n\n\n\n<p>\uc5ec\uae30\uc11c \uccab \ub450 \uc904\uacfc \ub9c8\uc9c0\ub9c9 \uc904\uc740 <strong>klee-replay<\/strong> \ub3c4\uad6c \uc790\uccb4\uc5d0\uc11c \ub098\uc628 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<p>\uccab \ub450 \uc904\uc740 \uc2e4\ud589 \uc911\uc778 \ud14c\uc2a4\ud2b8 \ucf00\uc774\uc2a4\ub97c \ub098\uc5f4\ud558\uace0 \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8\uc5d0 \uc804\ub2ec\ub418\ub294 \uc778\uc218\uc758 \uad6c\uccb4\uc801\uc778 \uac12\ub4e4\uc744 \ub098\ud0c0\ub0b8\ub2e4. <br>(\uc774\uc804\uc5d0 <strong>.ktest<\/strong> \ud30c\uc77c\uc5d0\uc11c \ubcf4\uc558\ub358 \uac83\uacfc \uc77c\uce58\ud568\uc744 \ucc38\uace0\ud560 \uac83)<\/p>\n\n\n\n<p>\ub9c8\uc9c0\ub9c9 \uc904\uc740 \ud504\ub85c\uadf8\ub7a8\uc758 \uc885\ub8cc \uc0c1\ud0dc\uc640 \uc2e4\ud589\ud558\ub294 \ub370 \uac78\ub9b0 \uc2dc\uac04\uc744 \ub098\ud0c0\ub0b8\ub2e4.<\/p>\n\n\n\n<p><strong>klee-replay<\/strong> \ub3c4\uad6c\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc5ec\ub7ec \ud14c\uc2a4\ud2b8 \ucf00\uc774\uc2a4\ub97c \ud558\ub098\uc529 \uc5f0\uc774\uc5b4 \uc2e4\ud589\ud558\ub3c4\ub85d \uc124\uc815\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<p>\uc774\ub807\uac8c \ud558\uc5ec <strong>gcov<\/strong> \ucee4\ubc84\ub9ac\uc9c0\ub97c <strong>klee-stats<\/strong>\uc5d0\uc11c \uc5bb\uc740 \uc22b\uc790\uc640 \ud55c\ubc88 \ube44\uad50\ud574\ubcf4\uc790\uba74\u2026<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">src$ rm -f *.gcda # Get rid of any stale gcov files\nsrc$ klee-replay .\/echo ..\/..\/obj-llvm\/src\/klee-last\/*.ktest\nklee-replay: TEST CASE: ..\/..\/obj-llvm\/src\/klee-last\/test000001.ktest\nklee-replay: ARGS: \".\/echo\" \"@@@\"\n@@@\nklee-replay: EXIT STATUS: NORMAL (0 seconds)\n_..._\nklee-replay: TEST CASE: ..\/..\/obj-llvm\/src\/klee-last\/test000022.ktest\nklee-replay: ARGS: \".\/echo\" \"--v\"\necho (GNU coreutils) 6.11\nCopyright (C) 2008 Free Software Foundation, Inc.\n_..._\n\nsrc$ gcov echo\nFile '..\/..\/src\/echo.c'\nLines executed:52.43% of 103\nCreating 'echo.c.gcov'\n\nFile '..\/..\/src\/system.h'\nLines executed:100.00% of 3\nCreating 'system.h.gcov'\n<\/pre>\n<\/div>\n<\/div>\n\n\n\n<p>\uc5ec\uae30\uc11c<strong> echo.c<\/strong>\uc758 \uc22b\uc790\ub294 <strong>klee-stats <\/strong>\uc22b\uc790\ubcf4\ub2e4 \ud06c\uac8c \ub098\ud0c0\ub09c\ub2e4.<\/p>\n\n\n\n<p>\uc774\ub294 <strong>gcov<\/strong>\uac00 \ud55c \ud30c\uc77c\uc758 \ub77c\uc778\ub9cc \uace0\ub824\ud558\uae30 \ub54c\ubb38\uc774\uba70, \uc804\uccb4 \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8\uc744 \uace0\ub824\ud558\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc774\ub2e4.<\/p>\n\n\n\n<p><strong>kcachegrind<\/strong>\uc640 \ub9c8\ucc2c\uac00\uc9c0\ub85c <strong>gcov<\/strong>\uac00 \ucd9c\ub825\ud55c \ucee4\ubc84\ub9ac\uc9c0 \ud30c\uc77c\uc744 \uac80\uc0ac\ud558\uc5ec \uc5b4\ub5a4 \ub77c\uc778\uc774 \ucee4\ubc84\ub418\uc5c8\ub294\uc9c0, \uc5b4\ub5a4 \ub77c\uc778\uc774 \ucee4\ubc84\ub418\uc9c0 \uc54a\uc558\ub294\uc9c0 \uc815\ud655\ud788 \ubcfc \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p>\uc5ec\uae30 \ucd9c\ub825\uc5d0\uc11c \uc77c\ubd80\ubd84\uc744 \uc0b4\ud3b4\ubcf4\uba74\u2026<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">-:  193:      }\n        -:  194:\n       23:  195:just_echo:\n        -:  196:\n       23:  197:  if (do_v9)\n        -:  198:    {\n       10:  199:      while (argc > 0)\n        -:  200:\t{\n    #####:  201:\t  char const *s = argv[0];\n        -:  202:\t  unsigned char c;\n        -:  203:\n    #####:  204:\t  while ((c = *s++))\n        -:  205:\t    {\n    #####:  206:\t      if (c == '\\\\\\\\' &amp;&amp; *s)\n        -:  207:\t\t{\n    #####:  208:\t\t  switch (c = *s++)\n        -:  209:\t\t    {\n    #####:  210:\t\t    case 'a': c = '\\\\a'; break;\n    #####:  211:\t\t    case 'b': c = '\\\\b'; break;\n    #####:  212:\t\t    case 'c': exit (EXIT_SUCCESS);\n    #####:  213:\t\t    case 'f': c = '\\\\f'; break;\n    #####:  214:\t\t    case 'n': c = '\\\\n'; break;\n<\/pre>\n<\/div>\n<\/div>\n\n\n\n<p>\uac00\uc7a5 \uc67c\ucabd \uc5f4\uc740 \uac01 \ub77c\uc778\uc774 \uc2e4\ud589\ub41c \ud69f\uc218\ub97c \ub098\ud0c0\ub0b8\ub2e4.<br><strong>&#8211;<\/strong>\ub294 \ub77c\uc778\uc5d0 \uc2e4\ud589 \uac00\ub2a5\ud55c \ucf54\ub4dc\uac00 \uc5c6\uc74c\uc744 \uc758\ubbf8\ud558\uace0, <strong>#####<\/strong>\uc740 \ud574\ub2f9 \ub77c\uc778\uc774 \ucee4\ubc84\ub418\uc9c0 \uc54a\uc558\uc74c\uc744 \uc758\ubbf8\ud55c\ub2e4.<br>\uc5ec\uae30 \ubcf4\ub4ef\uc774, \uc5ec\uae30\uc11c \ucee4\ubc84\ub418\uc9c0 \uc54a\uc740 \ub77c\uc778\ub4e4\uc740 \uc815\ud655\ud788 <strong>kcachegrind<\/strong>\uc5d0\uc11c \ubcf4\uace0\ub41c \ucee4\ubc84\ub418\uc9c0 \uc54a\uc740 \ub77c\uc778\ub4e4\uacfc \uc77c\uce58\ud55c\ub2e4.<\/p>\n\n\n\n<p>\ub354 \ubcf5\uc7a1\ud55c \uc751\uc6a9 \ud504\ub85c\uadf8\ub7a8\uc744 \ud14c\uc2a4\ud2b8\ud558\uae30\uc5d0 \uc55e\uc11c \uac04\ub2e8\ud55c <strong>echo.c<\/strong>\uc5d0 \ub300\ud55c \uc591\ud638\ud55c \ucee4\ubc84\ub9ac\uc9c0\ub97c \uc5bb\uc744 \uc218 \uc788\ub294\uc9c0 \ud655\uc778\ud574\ubcf4\uaca0\ub2e4.<br>\uc774\uc804\uc758 \uadf8 \ubb38\uc81c\ub294 \ub370\uc774\ud130\ub97c \ucda9\ubd84\ud788 \uc2ec\ubcfc\ub9ad\ud558\uac8c \ub9cc\ub4e4\uc9c0 \uc54a\uc558\uae30 \ub54c\ubb38\uc778\ub370, <strong>echo<\/strong>\uc5d0 \uc2ec\ubcfc\ub9ad \uc778\uc218 \ub450 \uac1c\ub97c \uc81c\uacf5\ud558\uba74 \ud504\ub85c\uadf8\ub7a8 \uc804\uccb4\ub97c \ucee4\ubc84\ud558\ub294 \ub370 \ucda9\ubd84\ud574\uc57c \ud55c\ub2e4.<\/p>\n\n\n\n<p>POSIX \ub7f0\ud0c0\uc784 <strong>&#8211;sym-args<\/strong> \uc635\uc158\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc5ec\ub7ec \uc635\uc158\uc744 \uc804\ub2ec\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p>\ub2e4\uc74c\uc740<strong> obj-llvm\/src <\/strong>\ub514\ub809\ud1a0\ub9ac\ub85c \ub2e4\uc2dc \uc804\ud658\ud574\uc11c, \uc218\ud589\ud574\uc57c \ud560 \ub2e8\uacc4\uc774\ub2e4:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">src$ klee **--only-output-states-covering-new** **--optimize --libc=**uclibc **--posix-runtime** .\/echo.bc **--sym-args** 0 2 4\n...\nKLEE: done: total instructions = 7611521\nKLEE: done: completed paths = 10179\nKLEE: done: generated tests = 57\n<\/pre>\n<\/div>\n<\/div>\n\n\n\n<p><strong>-sym-args<\/strong> \uc635\uc158\uc758 \ud615\uc2dd\uc740 \uc2e4\uc81c\ub85c \uc804\ub2ec\ud560 \ucd5c\uc18c \ubc0f \ucd5c\ub300 \uc778\uc218\uc758 \uc218\uc640 \uac01 \uc778\uc218\uc5d0 \uc0ac\uc6a9\ud560 \uae38\uc774\ub97c \uc9c0\uc815\ud55c\ub2e4.<\/p>\n\n\n\n<p>\uc774 \uacbd\uc6b0 <strong>&#8211;sym-args 0 2 4<\/strong>\ub294 0\uc5d0\uc11c 2\uac1c\uc758 \uc778\uc218(\ud3ec\ud568)\ub97c \uc804\ub2ec\ud558\uace0, \uac01 \uc778\uc218\uc758 \ucd5c\ub300 \uae38\uc774\ub294 4\uc790\ub85c \uc9c0\uc815\ud55c\ub2e4.<\/p>\n\n\n\n<p>\ub610\ud55c KLEE \uba85\ub839\uc904\uc5d0 <strong>&#8211;only-output-states-covering-new<\/strong> \uc635\uc158\uc744 \ucd94\uac00\uc2dc\ucf30\ub2e4.<br>\uae30\ubcf8\uc801\uc73c\ub85c KLEE\ub294 \ud0d0\uc0c9\ud558\ub294 \ubaa8\ub4e0 \uacbd\ub85c\uc5d0 \ub300\ud55c \ud14c\uc2a4\ud2b8 \ucf00\uc774\uc2a4\ub97c \uc791\uc131\ud55c\ub2e4.<br>\ud504\ub85c\uadf8\ub7a8\uc774 \ucee4\uc9c8\uc218\ub85d \uc774 \uc635\uc158\uc740 \ub35c \uc720\uc6a9\ud574\uc9c0\ub294\ub370, \uc774\ub7ec\ud55c \uc774\uc720\ub294 \ub9ce\uc740 \ud14c\uc2a4\ud2b8 \ucf00\uc774\uc2a4\uac00 \ub3d9\uc77c\ud55c \uacbd\ub85c\ub97c \ud0d0\uc0c9\ud558\uac8c \ub418\uba70 \uac01\uac01\uc744 \uacc4\uc0b0\ud558\uac70\ub098(\ub610\ub294 \ub2e4\uc2dc \uc2e4\ud589)\ud558\ub294 \uac83\uc740 \uc2dc\uac04 \ub0ad\ube44\uac00 \ub418\uae30 \ub54c\ubb38\uc774\ub2e4.<br>\uc774 \uc635\uc158\uc744 \uc0ac\uc6a9\ud558\uba74 KLEE\uc5d0\uac8c \ucf54\ub4dc\uc5d0\uc11c \uc0c8\ub85c\uc6b4 \uba85\ub839\uc5b4\ub97c \ucee4\ubc84\ud558\uac70\ub098 \uc624\ub958\ub97c \ub9cc\ub098\ub294 \uacbd\ub85c\uc5d0 \ub300\ud574\uc11c\ub9cc \ud14c\uc2a4\ud2b8 \ucf00\uc774\uc2a4\ub97c \uc791\uc131\ud558\ub3c4\ub85d \uc9c0\uc2dc\ud55c\ub2e4.<br>\ucd9c\ub825\uc758 \ub9c8\uc9c0\ub9c9 \uc904\uc5d0\uc11c \ubcfc \uc218 \uc788\ub4ef\uc774, KLEE\ub294 \ucf54\ub4dc\ub97c \uac70\uc758 <strong>10,000\uac1c\uc758 \uacbd\ub85c<\/strong>\ub97c \ud0d0\uc0c9\ud588\uc9c0\ub9cc, <strong>57\uac1c\uc758 \ud14c\uc2a4\ud2b8 \ucf00\uc774\uc2a4<\/strong>\ub9cc \uc791\uc131\ud574\uc57c \ud588\ub2e4.<\/p>\n\n\n\n<p><strong>obj-gcov\/src<\/strong> \ub514\ub809\ud1a0\ub9ac\ub85c \ub3cc\uc544\uac00\uc11c \uac00\uc7a5 \ucd5c\uc2e0\uc758 \ud14c\uc2a4\ud2b8 \ucf00\uc774\uc2a4 \uc138\ud2b8\ub97c \ub2e4\uc2dc \uc2e4\ud589\ud558\uba74, \uc774\uc81c <strong>echo.c<\/strong>\uc5d0 \ub300\ud55c \ud569\ub9ac\uc801\uc778 \ucee4\ubc84\ub9ac\uc9c0\ub97c \uc5bb\uc744 \uc218 \uc788\ub2e4:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">src$ rm -f *.gcda # Get rid of any stale gcov files\nsrc$ klee-replay .\/echo ..\/..\/obj-llvm\/src\/klee-last\/*.ktest\nklee-replay: TEST CASE: ..\/..\/obj-llvm\/src\/klee-last\/test000001.ktest\nklee-replay: ARGS: \".\/echo\"\n\n...\n\nsrc$ gcov echo\nFile '..\/..\/src\/echo.c'\nLines executed:97.09% of 103\nCreating 'echo.c.gcov'\n\nFile '..\/..\/src\/system.h'\nLines executed:100.00% of 3\nCreating 'system.h.gcov'\n<\/pre>\n<\/div>\n<\/div>\n\n\n\n<p>\uc644\ubcbd\ud55c 100% \ub77c\uc778 \ucee4\ubc84\ub9ac\uc9c0\ub97c \uc5bb\uc9c0 \ubabb\ud55c \uc774\uc720\uc5d0 \ub300\ud55c \uc124\uba85\uc740 \ub3c5\uc790\uc5d0\uac8c \uc758\ubb38\uc744 \ub0a8\uae30\uace0 \uac00\uaca0\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">8\ub2e8\uacc4: \ucee4\ubc84\ub9ac\uc9c0 \ubd84\uc11d\uc744 \uc704\ud574 <a href=\"https:\/\/github.com\/ddunbar\/zcov\">zcov<\/a> \ub3c4\uad6c \uc0ac\uc6a9\ud558\uae30<\/h2>\n\n\n\n<p>\ucee4\ubc84\ub9ac\uc9c0 \uacb0\uacfc\ub97c \uc2dc\uac01\ud654\ud558\uae30 \uc704\ud574 <a href=\"https:\/\/github.com\/ddunbar\/zcov\">zcov<\/a> \ub3c4\uad6c\ub97c \uc0ac\uc6a9\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\ucd9c\ucc98 \ubc0f \ubc88\uc5ed<\/h2>\n\n\n\n<p><a href=\"https:\/\/klee.github.io\/tutorials\/testing-coreutils\/\">https:\/\/klee.github.io\/tutorials\/testing-coreutils\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>KLEE\ub97c \uc0ac\uc6a9\ud558\uc5ec GNU Coreutils\ub97c \ud14c\uc2a4\ud2b8\ud558\ub294 \ubc29\ubc95\uc5d0 \ub300\ud55c \ud29c\ud1a0\ub9ac\uc5bc \ub354 \uc790\uc138\ud55c KLEE \uc0ac\uc6a9 \uc124\uba85\uc73c\ub85c, OSDI&#8217;08 Coreutils \uc2e4\ud5d8 \uc124\uba85\uc5d0 \ub530\ub77c KLEE\ub97c \uc0ac\uc6a9\ud558\uc5ec GNU Coreutils\ub97c \ud14c\uc2a4\ud2b8\ud558\ub294 \ubc29\ubc95\uc744 \uc0b4\ud3b4\ubcf4\uaca0\ub2e4. \ubcf8 \ud29c\ud1a0\ub9ac\uc5bc\uc740 uClibc \ubc0f POSIX \ub7f0\ud0c0\uc784 \uc9c0\uc6d0\uacfc \ud568\uaed8 \uad6c\uc131 \ubc0f \ube4c\ub4dc\ub41c KLEE\ub85c \uac00\uc815\ud55c\ub2e4. \ubaa8\ub4e0 \ud14c\uc2a4\ud2b8\ub294 64\ube44\ud2b8 \ub9ac\ub205\uc2a4 \uba38\uc2e0\uc5d0\uc11c \uc218\ud589\ub418\uc5c8\ub2e4. 1\ub2e8\uacc4: gcov\uc640 \ud568\uaed8 coreutils \ube4c\ub4dc\ud558\uae30 \uba3c\uc800 coreutils \uc18c\uc2a4\ub97c \ub2e4\uc6b4\ub85c\ub4dc\ud558\uace0 \uc555\ucd95\uc744 \ud574\uc81c\ud55c\ub2e4.&hellip;&nbsp;<a href=\"https:\/\/h4ck.kr\/?p=1164\" rel=\"bookmark\">\ub354 \ubcf4\uae30 &raquo;<span class=\"screen-reader-text\">Coreutils \ud14c\uc2a4\ud2b8: KLEE\ub97c \uc0ac\uc6a9\ud558\uc5ec GNU Coreutils\ub97c \ud14c\uc2a4\ud2b8\ud558\ub294 \ubc29\ubc95\uc5d0 \ub300\ud55c \uc790\uc138\ud55c \uc124\uba85<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[15],"tags":[20],"class_list":["post-1164","post","type-post","status-publish","format-standard","hentry","category-whitehat1","tag-klee"],"_links":{"self":[{"href":"https:\/\/h4ck.kr\/index.php?rest_route=\/wp\/v2\/posts\/1164","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/h4ck.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/h4ck.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/h4ck.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/h4ck.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1164"}],"version-history":[{"count":4,"href":"https:\/\/h4ck.kr\/index.php?rest_route=\/wp\/v2\/posts\/1164\/revisions"}],"predecessor-version":[{"id":1179,"href":"https:\/\/h4ck.kr\/index.php?rest_route=\/wp\/v2\/posts\/1164\/revisions\/1179"}],"wp:attachment":[{"href":"https:\/\/h4ck.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1164"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/h4ck.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1164"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/h4ck.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1164"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}