{"id":5025,"date":"2021-01-31T20:50:57","date_gmt":"2021-01-31T12:50:57","guid":{"rendered":"https:\/\/damogame.cn\/wordpress\/?p=5025"},"modified":"2021-01-31T20:50:57","modified_gmt":"2021-01-31T12:50:57","slug":"gcc-addresssanitizer","status":"publish","type":"post","link":"https:\/\/i007.cc\/wordpress\/archives\/5025","title":{"rendered":"gcc AddressSanitizer"},"content":{"rendered":"<div class=\"s-dsoj\"><a href=\"https:\/\/www.jianshu.com\/p\/e26b78b3179c\">\u539f\u6587\u5730\u5740<\/a><\/div>\n<div><\/div>\n<article class=\"_2rhmJa\">\u7a0b\u5e8f\u4e2d\u53d1\u751f\u5185\u5b58\u76f8\u5173\u7684\u95ee\u9898\uff0c\u5411\u6765\u90fd\u662f\u8ba9\u4eba\u5934\u5927\u7684\u3002\u8fd9\u91cc\u4ecb\u7ecd\u4e00\u4e0bASan\u76f8\u5173\u7684\u5185\u5bb9\uff0c\u5e0c\u671b\u53ef\u4ee5\u5bf9debug\u5185\u5b58\u76f8\u5173\u7684\u95ee\u9898\u6709\u6240\u5e2e\u52a9\u3002<\/p>\n<p>ASan\u76f8\u5173\u7684\u7b80\u4ecb\u53ef\u4ee5\u53c2\u8003wiki\uff1a<a href=\"https:\/\/link.jianshu.com\/?t=https:\/\/en.wikipedia.org\/wiki\/AddressSanitizer\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/en.wikipedia.org\/wiki\/AddressSanitizer<\/a><\/p>\n<p>ASan\u5728clang(3.1\u4e4b\u540e)\u548cgcc(4.8\u4e4b\u540e)\u5747\u652f\u6301\uff0c\u4ee5\u4e0b\u4ee5gcc\u4e3e\u4f8b\uff1a<\/p>\n<div class=\"_2Uzcx_\"><button class=\"VJbwyy\" type=\"button\" aria-label=\"\u590d\u5236\u4ee3\u7801\"><i class=\"anticon anticon-copy\" aria-label=\"icon: copy\"><\/i><\/button><\/p>\n<pre class=\"line-numbers  language-cpp\"><code class=\"  language-cpp\"><span class=\"token keyword\">int<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> argc <span class=\"token punctuation\">,<\/span><span class=\"token keyword\">char<\/span> <span class=\"token operator\">*<\/span><span class=\"token operator\">*<\/span>argv<span class=\"token punctuation\">)<\/span>\r\n<span class=\"token punctuation\">{<\/span>\r\n    <span class=\"token keyword\">int<\/span> stack_array<span class=\"token punctuation\">[<\/span><span class=\"token number\">100<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\r\n    stack_array<span class=\"token punctuation\">[<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">=<\/span> <span class=\"token number\">100<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token keyword\">return<\/span> stack_array<span class=\"token punctuation\">[<\/span>argc <span class=\"token operator\">+<\/span> <span class=\"token number\">100<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\r\n<span class=\"token punctuation\">}<\/span>\r\n\r\ng<span class=\"token operator\">++<\/span> <span class=\"token operator\">-<\/span>g <span class=\"token operator\">-<\/span>fsanitize<span class=\"token operator\">=<\/span>address main<span class=\"token punctuation\">.<\/span>cpp\r\n<\/code><\/pre>\n<\/div>\n<p>\u7f16\u8bd1\u597d\u540e\uff0c\u8fd0\u884c<\/p>\n<div class=\"_2Uzcx_\"><button class=\"VJbwyy\" type=\"button\" aria-label=\"\u590d\u5236\u4ee3\u7801\"><i class=\"anticon anticon-copy\" aria-label=\"icon: copy\"><\/i><\/button><\/p>\n<pre class=\"line-numbers  language-csharp\"><code class=\"  language-csharp\"><span class=\"token punctuation\">.<\/span><span class=\"token operator\">\/<\/span>a<span class=\"token punctuation\">.<\/span><span class=\"token keyword\">out<\/span>\r\n<span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">==<\/span><span class=\"token operator\">=<\/span>\r\n<span class=\"token operator\">==<\/span><span class=\"token number\">7163<\/span><span class=\"token operator\">==<\/span>ERROR<span class=\"token punctuation\">:<\/span> AddressSanitizer<span class=\"token punctuation\">:<\/span> stack<span class=\"token operator\">-<\/span>buffer<span class=\"token operator\">-<\/span>overflow on address <span class=\"token number\">0x7fff9666ccd4<\/span> at pc <span class=\"token number\">0x000000400906<\/span> bp <span class=\"token number\">0x7fff9666cb00<\/span> sp <span class=\"token number\">0x7fff9666caf0<\/span>\r\n<span class=\"token class-name\">READ<\/span> of size <span class=\"token number\">4<\/span> at <span class=\"token number\">0x7fff9666ccd4<\/span> thread T0\r\n    <span class=\"token preprocessor property\">#0 0x400905 in main \/home\/tsing\/asan\/main.cpp:5<\/span>\r\n    <span class=\"token preprocessor property\">#1 0x7f199d0e982f in __libc_start_main (\/lib\/x86_64-linux-gnu\/libc.so.6+0x2082f)<\/span>\r\n    <span class=\"token preprocessor property\">#2 0x400748 in _start (\/home\/tsing\/asan\/a.out+0x400748)<\/span>\r\n\r\n<span class=\"token class-name\">Address<\/span> <span class=\"token number\">0x7fff9666ccd4<\/span> <span class=\"token keyword\">is<\/span> located <span class=\"token keyword\">in<\/span> stack of thread <span class=\"token class-name\">T0<\/span> at offset <span class=\"token number\">436<\/span> <span class=\"token keyword\">in<\/span> frame\r\n    <span class=\"token preprocessor property\">#0 0x400825 in main \/home\/tsing\/asan\/main.cpp:2<\/span>\r\n\r\n  <span class=\"token class-name\">This<\/span> frame has <span class=\"token number\">1<\/span> <span class=\"token keyword\">object<\/span><span class=\"token punctuation\">(<\/span>s<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span>\r\n    <span class=\"token punctuation\">[<\/span><span class=\"token number\">32<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">432<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token string\">'stack_array'<\/span> <span class=\"token operator\">&lt;=<\/span><span class=\"token operator\">=<\/span> <span class=\"token class-name\">Memory<\/span> access at offset <span class=\"token number\">436<\/span> overflows <span class=\"token keyword\">this<\/span> variable\r\nHINT<span class=\"token punctuation\">:<\/span> <span class=\"token keyword\">this<\/span> may be a <span class=\"token keyword\">false<\/span> positive <span class=\"token keyword\">if<\/span> your program uses some custom stack unwind mechanism or swapcontext\r\n      <span class=\"token punctuation\">(<\/span>longjmp and C<span class=\"token operator\">++<\/span> exceptions <span class=\"token operator\">*<\/span>are<span class=\"token operator\">*<\/span> supported<span class=\"token punctuation\">)<\/span>\r\nSUMMARY<span class=\"token punctuation\">:<\/span> AddressSanitizer<span class=\"token punctuation\">:<\/span> stack<span class=\"token operator\">-<\/span>buffer<span class=\"token operator\">-<\/span>overflow <span class=\"token operator\">\/<\/span>home<span class=\"token operator\">\/<\/span>tsing<span class=\"token operator\">\/<\/span>asan<span class=\"token operator\">\/<\/span>main<span class=\"token punctuation\">.<\/span>cpp<span class=\"token punctuation\">:<\/span><span class=\"token number\">5<\/span> main\r\n<span class=\"token class-name\">Shadow<\/span> bytes around the buggy address<span class=\"token punctuation\">:<\/span>\r\n  <span class=\"token number\">0x100072cc5940<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span>\r\n  <span class=\"token number\">0x100072cc5950<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span>\r\n  <span class=\"token number\">0x100072cc5960<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> f1 f1 f1 f1 <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span>\r\n  <span class=\"token number\">0x100072cc5970<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span>\r\n  <span class=\"token number\">0x100072cc5980<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span>\r\n<span class=\"token operator\">=&gt;<\/span><span class=\"token number\">0x100072cc5990<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span><span class=\"token punctuation\">[<\/span>f4<span class=\"token punctuation\">]<\/span>f4 f3 f3 f3 f3\r\n  <span class=\"token number\">0x100072cc59a0<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span>\r\n  <span class=\"token number\">0x100072cc59b0<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span>\r\n  <span class=\"token number\">0x100072cc59c0<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span>\r\n  <span class=\"token number\">0x100072cc59d0<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span>\r\n  <span class=\"token number\">0x100072cc59e0<\/span><span class=\"token punctuation\">:<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span> <span class=\"token number\">00<\/span>\r\n<span class=\"token class-name\">Shadow<\/span> <span class=\"token keyword\">byte<\/span> legend <span class=\"token punctuation\">(<\/span>one shadow <span class=\"token keyword\">byte<\/span> represents <span class=\"token number\">8<\/span> application bytes<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">:<\/span>\r\n  Addressable<span class=\"token punctuation\">:<\/span>           <span class=\"token number\">00<\/span>\r\n  <span class=\"token class-name\">Partially<\/span> addressable<span class=\"token punctuation\">:<\/span> <span class=\"token number\">01<\/span> <span class=\"token number\">02<\/span> <span class=\"token number\">03<\/span> <span class=\"token number\">04<\/span> <span class=\"token number\">05<\/span> <span class=\"token number\">06<\/span> <span class=\"token number\">07<\/span>\r\n  <span class=\"token class-name\">Heap<\/span> left redzone<span class=\"token punctuation\">:<\/span>       fa\r\n  <span class=\"token class-name\">Heap<\/span> right redzone<span class=\"token punctuation\">:<\/span>      fb\r\n  <span class=\"token class-name\">Freed<\/span> heap region<span class=\"token punctuation\">:<\/span>       fd\r\n  <span class=\"token class-name\">Stack<\/span> left redzone<span class=\"token punctuation\">:<\/span>      f1\r\n  <span class=\"token class-name\">Stack<\/span> mid redzone<span class=\"token punctuation\">:<\/span>       f2\r\n  <span class=\"token class-name\">Stack<\/span> right redzone<span class=\"token punctuation\">:<\/span>     f3\r\n  <span class=\"token class-name\">Stack<\/span> <span class=\"token keyword\">partial<\/span> redzone<span class=\"token punctuation\">:<\/span>   f4\r\n  <span class=\"token class-name\">Stack<\/span> after <span class=\"token keyword\">return<\/span><span class=\"token punctuation\">:<\/span>      f5\r\n  <span class=\"token class-name\">Stack<\/span> use after scope<span class=\"token punctuation\">:<\/span>   f8\r\n  <span class=\"token class-name\">Global<\/span> redzone<span class=\"token punctuation\">:<\/span>          f9\r\n  <span class=\"token class-name\">Global<\/span> init order<span class=\"token punctuation\">:<\/span>       f6\r\n  <span class=\"token class-name\">Poisoned<\/span> by user<span class=\"token punctuation\">:<\/span>        f7\r\n  <span class=\"token class-name\">Container<\/span> overflow<span class=\"token punctuation\">:<\/span>      fc\r\n  <span class=\"token class-name\">Array<\/span> cookie<span class=\"token punctuation\">:<\/span>            ac\r\n  <span class=\"token class-name\">Intra<\/span> <span class=\"token keyword\">object<\/span> redzone<span class=\"token punctuation\">:<\/span>    bb\r\n  <span class=\"token class-name\">ASan<\/span> <span class=\"token keyword\">internal<\/span><span class=\"token punctuation\">:<\/span>           fe\r\n<span class=\"token operator\">==<\/span><span class=\"token number\">7163<\/span><span class=\"token operator\">==<\/span>ABORTING\r\n<\/code><\/pre>\n<\/div>\n<p>\u8fd0\u884c\u7a0b\u5e8f\uff0c\u4f1a\u628a\u8d8a\u754c\u8bbf\u95ee\u5730\u65b9\u7684call stack\u6253\u5370\u51fa\u6765\u3002<\/p>\n<p>gcc -fsanitize\u9009\u9879\u771f\u7684\u975e\u5e38\u5f3a\u5927\uff0cheap\u533a\u52a8\u6001\u7533\u8bf7\u7684\u5185\u5b58\u3001\u5168\u5c40data\u6bb5\u7684\u5185\u5b58\uff0c\u5747\u53ef\u4ee5\u88ab\u4fa6\u6d4b\u5230\u3002\u53e6\u5916-fsanitize\u9009\u9879\u8f83\u591a\uff0c\u5177\u4f53\u53ef\u4ee5\u53c2\u8003gcc\u7684\u624b\u518c\uff1a<br \/>\n<a href=\"https:\/\/link.jianshu.com\/?t=https:\/\/gcc.gnu.org\/onlinedocs\/\" target=\"_blank\" rel=\"nofollow noopener\">https:\/\/gcc.gnu.org\/onlinedocs\/<\/a><br \/>\n\u5f3a\u70c8\u5efa\u8bae\u5907\u4e00\u4efd\u3002\u8fd9\u4e9b\u9009\u9879\u5305\u62ec\u5185\u5b58\u6cc4\u6f0f\u7684\u68c0\u6d4b\uff0c\u591a\u7ebf\u7a0b\u4e34\u754c\u8d44\u6e90\u76d1\u6d4b\u7b49\u7b49\u3002<\/p>\n<\/article>\n<div><\/div>\n<div class=\"_1kCBjS\">\n<div class=\"_18vaTa\">\n<div class=\"_3BUZPB\">\n<div class=\"_2Bo4Th\" tabindex=\"-1\" role=\"button\" aria-label=\"\u7ed9\u6587\u7ae0\u70b9\u8d5e\"><\/div>\n<p><span class=\"_1LOh_5\" tabindex=\"-1\" role=\"button\" aria-label=\"\u67e5\u770b\u70b9\u8d5e\u5217\u8868\">0\u4eba\u70b9\u8d5e<i class=\"anticon anticon-right\" aria-label=\"icon: right\"><\/i><\/span><\/div>\n<div class=\"_3BUZPB\">\n<div class=\"_2Bo4Th\" tabindex=\"-1\" role=\"button\"><\/div>\n<\/div>\n<\/div>\n<div class=\"_18vaTa\"><a class=\"_3BUZPB _1x1ok9 _1OhGeD\" href=\"https:\/\/www.jianshu.com\/nb\/1333096\" target=\"_blank\" rel=\"noopener noreferrer\"><i class=\"anticon\" aria-label=\"ic-notebook\"><\/i>Android<\/a><\/p>\n<div class=\"_3BUZPB ant-dropdown-trigger\">\n<div class=\"_2Bo4Th\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u539f\u6587\u5730\u5740 \u7a0b\u5e8f\u4e2d\u53d1\u751f\u5185\u5b58\u76f8\u5173\u7684\u95ee\u9898\uff0c\u5411\u6765<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[],"tags":[118],"class_list":["post-5025","post","type-post","status-publish","format-standard","hentry","tag-02-"],"_links":{"self":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/5025","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/comments?post=5025"}],"version-history":[{"count":0,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/5025\/revisions"}],"wp:attachment":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/media?parent=5025"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/categories?post=5025"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/tags?post=5025"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}