{"id":1259,"date":"2013-10-31T15:25:43","date_gmt":"2013-10-31T15:25:43","guid":{"rendered":"http:\/\/blog.bachi.net\/?p=1259"},"modified":"2013-10-31T16:44:26","modified_gmt":"2013-10-31T16:44:26","slug":"development-tools-for-linux","status":"publish","type":"post","link":"https:\/\/blog.bachi.net\/?p=1259","title":{"rendered":"Development Tools for Linux"},"content":{"rendered":"<h3>Kernel Space Tools<\/h3>\n<ul>\n<li>LTT\/LTTng<\/li>\n<li>GDB\/KGDB<\/li>\n<li>FTRACE<\/li>\n<li>GCOV\/Kernel GCOV<\/li>\n<li>Kprobes<\/li>\n<li>Oprofile<\/li>\n<li>Kernel built-in debug extensions<\/li>\n<li>\/proc Interface<\/li>\n<\/ul>\n<h3>User Space Tool<\/h3>\n<ul>\n<li>strace\/ltrace\/xtrace\/mtrace<\/li>\n<li>Checkpoint Restart, ex. BLCR<\/li>\n<li>LD_PRELOAD, ex. libSegfault.so<\/li>\n<\/ul>\n<h3>sparse<\/h3>\n<p><a href=\"http:\/\/wireless.kernel.org\/en\/developers\/Documentation\/using-sparse\">Linux Wireless &#8211; using-sparse<\/a><\/p>\n<h3>ftrace<\/h3>\n<p><a href=\"http:\/\/elinux.org\/Ftrace\">Ftrace<\/a><br \/>\n<a href=\"http:\/\/lwn.net\/Articles\/370423\/\">Secrets of the Ftrace function tracer<\/a><br \/>\n<a href=\"https:\/\/www.kernel.org\/doc\/Documentation\/trace\/ftrace.txt\">ftrace &#8211; Function Tracer<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kernel Space Tools LTT\/LTTng GDB\/KGDB FTRACE GCOV\/Kernel GCOV Kprobes Oprofile Kernel built-in debug extensions \/proc Interface User Space Tool strace\/ltrace\/xtrace\/mtrace Checkpoint Restart, ex. BLCR LD_PRELOAD, ex. libSegfault.so sparse Linux Wireless &#8211; using-sparse ftrace Ftrace Secrets of the Ftrace function tracer ftrace &#8211; Function Tracer<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1259","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/1259","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1259"}],"version-history":[{"count":4,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/1259\/revisions"}],"predecessor-version":[{"id":1268,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=\/wp\/v2\/posts\/1259\/revisions\/1268"}],"wp:attachment":[{"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1259"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1259"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.bachi.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1259"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}