{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":16727749,"defaultBranch":"master","name":"uftrace","ownerLogin":"namhyung","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2014-02-11T10:44:50.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/48503?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1716052487.0","currentOid":""},"activityList":{"items":[{"before":"fae85a8a40d2b64c2ed415d13c31bfbc87bf2710","after":"a4963f8dfdbc88f2867d21000c03894c8309a0f7","ref":"refs/heads/master","pushedAt":"2024-05-21T05:58:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"live: static variable used stack after return\n\nASAN detect stack after return on this scenario.\n$ uftrace record --agent --trace=off ./valkey-server\n\n$ uftrace --pid `pidof valkey-server` --trace=on\n$ uftrace --pid `pidof valkey-server` --trace=off\n\nThis patch fix static tmp_dirname variable not pointed\ncommand_live()'s char template array stack variable.\n\nSigned-off-by: Yunseong Kim ","shortMessageHtmlLink":"live: static variable used stack after return"}},{"before":null,"after":"e436978f5ec9123c4689fa36ee49b391b8e80814","ref":"refs/heads/review/watch-variable-v3","pushedAt":"2024-05-18T17:14:47.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"test: Add a test case for variable watchpoints\n\n $ uftrace -W var:mydata tests/t-watch-global\n # DURATION TID FUNCTION\n [238314] | __monstartup() {\n [238314] | /* watch:var (mydata=0) */\n 1.375 us [238314] | } /* __monstartup */\n 0.384 us [238314] | __cxa_atexit();\n [238314] | main() {\n [238314] | foo() {\n [238314] | /* watch:var (mydata=1) */\n 0.202 us [238314] | bar();\n [238314] | /* watch:var (mydata=2) */\n 0.638 us [238314] | } /* foo */\n 0.902 us [238314] | } /* main */\n\nSigned-off-by: Namhyung Kim ","shortMessageHtmlLink":"test: Add a test case for variable watchpoints"}},{"before":"d79debabca9eaa1f6ad9e5bee93a1aa76256f22a","after":"fae85a8a40d2b64c2ed415d13c31bfbc87bf2710","ref":"refs/heads/master","pushedAt":"2024-05-18T00:48:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"info: Add utc_offset info for external usage\n\nIn some cases, there is a requirement to get the time offset between UTC\ntime and our timestamp from the given clock source, CLOCK_MONOTONIC by\ndefault.\n\nThis patch provides an additional info to provide UTC time offset in the\noutput of uftrace info.\n\nThis number can be used to make time adjustment easier for external\ntools such as tracecompass[1].\n\nCloses: #1916\n\n[1] https://eclipse.dev/tracecompass\nRequested-by: Matthew Khouzam \nSigned-off-by: Honggyu Kim ","shortMessageHtmlLink":"info: Add utc_offset info for external usage"}},{"before":null,"after":"20a3b74d37bd7ecca4a0ac3f98be0165e35baceb","ref":"refs/heads/review/watch-variable-v2","pushedAt":"2024-05-08T04:33:44.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"replay: Support watch point event for variables\n\n $ cat watch-test.c\n #include \n\n int ga = -1;\n int global = 7;\n int gb = -1;\n\n void bar(void);\n\n void foo(void) {\n global = 2;\n bar();\n global = 4;\n }\n\n void bar(void) {\n ga = 0;\n }\n\n int main(void) {\n ga = 1;\n foo();\n gb = 5;\n return 0;\n }\n\n $ uftrace -W var:global a.out\n # DURATION TID FUNCTION\n 9.139 us [ 11752] | __monstartup();\n 0.450 us [ 11752] | __cxa_atexit();\n [ 11752] | main() {\n [ 11752] | foo() {\n [ 11752] | /* watch:var (global = 2) */\n 0.697 us [ 11752] | bar();\n [ 11752] | /* watch:var (global = 4) */\n 2.190 us [ 11752] | } /* foo */\n 3.447 us [ 11752] | } /* main */\n\nSigned-off-by: Namhyung Kim ","shortMessageHtmlLink":"replay: Support watch point event for variables"}},{"before":"68aed9b0a20d3d1b5e1dc15e0f8aabba7e34735b","after":"d79debabca9eaa1f6ad9e5bee93a1aa76256f22a","ref":"refs/heads/master","pushedAt":"2024-05-01T03:42:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"mcount: Protect FD for message channel\n\nuftrace and libmcount communicate using a pipe in the data directory.\nWe need to keep the file descriptor open to ensure that uftrace and libmcount\ncan communicate correctly.\n\nSome daemon programs will close all file descriptors during they startup, we\nneed to protect file descriptor which will be used to communicate uftrace and\nlibmcount to avoid broken communication issue.\n\nSigned-off-by: Rongsong Shen ","shortMessageHtmlLink":"mcount: Protect FD for message channel"}},{"before":"bc12225c65548a8d43fee9259d4e4eb27f4c51ab","after":"68aed9b0a20d3d1b5e1dc15e0f8aabba7e34735b","ref":"refs/heads/master","pushedAt":"2024-04-25T03:44:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"uftrace: Release v0.16\n\nThis is a small release with:\n\n * separate debug file support\n * add a new 'o' format for octal values\n * add {total,self}-stdv fields to report\n * improve tracing large Python programs\n * and a lot of bug fixes\n\nSigned-off-by: Namhyung Kim ","shortMessageHtmlLink":"uftrace: Release v0.16"}},{"before":"a26f9d6b9ab7a4737e48c9903d4f41111b28873a","after":"bc12225c65548a8d43fee9259d4e4eb27f4c51ab","ref":"refs/heads/master","pushedAt":"2024-04-24T05:30:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"autoargs: Add a prototype for fchmodat(3)\n\nIt seems fchmodat() was added in POSIX 2008. Add that to the prototype.\n\n int fchmodat(int dirfd, const char *pathname, oct_mode_t mode, int flags);\n\nSigned-off-by: Namhyung Kim ","shortMessageHtmlLink":"autoargs: Add a prototype for fchmodat(3)"}},{"before":"427faa9db03c72302b0d67c086c26d0c7515f581","after":"a26f9d6b9ab7a4737e48c9903d4f41111b28873a","ref":"refs/heads/master","pushedAt":"2024-04-24T04:27:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"dwarf: Close file descriptors in setup_dwarf_info()\n\nThis defect was detected by Facebook's Infer tool https://github.com/facebook/infer\n\nSigned-off-by: Ziming Zhou ","shortMessageHtmlLink":"dwarf: Close file descriptors in setup_dwarf_info()"}},{"before":"2b3947bf8ecff9241dbe0ce641af58435ce644c7","after":"427faa9db03c72302b0d67c086c26d0c7515f581","ref":"refs/heads/master","pushedAt":"2024-04-22T07:25:02.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"Merge branch 'report-update'\n\nSupport stdv sort key and fix the alignment.\n\nSigned-off-by: Namhyung Kim ","shortMessageHtmlLink":"Merge branch 'report-update'"}},{"before":"fd34736ff6d7506ad6e6ba2a7462c026a7acfa4a","after":"edd78ab08c4e15f90a6119a4232d08e5f24b72df","ref":"refs/heads/check/release","pushedAt":"2024-04-22T03:42:26.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"uftrace: Release v0.16\n\nThis is a small release with:\n\n * separate debug file support\n * add a new 'o' format for octal values\n * add {total,self}-stdv fields to report\n * improve tracing large Python programs\n * and a lot of bug fixes\n\nSigned-off-by: Namhyung Kim ","shortMessageHtmlLink":"uftrace: Release v0.16"}},{"before":"17df844f1488a9a90e218b0a2ba19d1936e4cfb2","after":"2b3947bf8ecff9241dbe0ce641af58435ce644c7","ref":"refs/heads/master","pushedAt":"2024-04-22T03:37:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"Report: support standard deviation (STDDEV) in report output\n\nThis commit introduces the ability to display the relative standard deviation (RSD)\nfor function execution times in the uftrace report output. This feature helps in\nunderstanding the variability in function performance across different runs.\n\nExample usage:\n\n $ uftrace report -f total-avg,total-stdv\n Total avg Total stdv Function\n ========== ========== ====================\n 10.263 ms 0.00% main\n 10.209 ms 0.00% bar\n 10.191 ms 0.00% usleep\n 8.125 us 5.43% foo\n 2.509 us 3.05% loop\n\nThis enhancement adds the 'total-stdv' field, which can be specified alongside\nother fields like 'total-avg'.\n\nResolves: #1897\n\nSigned-off-by: Ziming Zhou ","shortMessageHtmlLink":"Report: support standard deviation (STDDEV) in report output"}},{"before":"55374c41040c258b901c8161158c89f5811ee7ea","after":"fd34736ff6d7506ad6e6ba2a7462c026a7acfa4a","ref":"refs/heads/check/release","pushedAt":"2024-04-20T22:18:47.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"uftrace: Release v0.16\n\nThis is a small release with:\n\n * separate debug file support\n * add a new 'o' format for octal values\n * improve Python tracing by not bothering GC\n * and a lot of bug fixes\n\nSigned-off-by: Namhyung Kim ","shortMessageHtmlLink":"uftrace: Release v0.16"}},{"before":"6ea5ba2d4425366ecf0e9e36140dbf44deed6951","after":"17df844f1488a9a90e218b0a2ba19d1936e4cfb2","ref":"refs/heads/master","pushedAt":"2024-04-11T04:40:21.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"Merge branch 'misc-update'\n\nUse uftrace_basename() to keep the input string untouched like in the\nGNU version.\n\nA recent change in musl libc introduced an issue with the basename(3)\nthat where we can find the declaration (string.h vs. libgen.h). It\nalso brings a subtle difference in the implementation. Let's be clear\nwith our own implementation.\n\nFixed: #1909\nSigned-off-by: Namhyung Kim ","shortMessageHtmlLink":"Merge branch 'misc-update'"}},{"before":"1d6e8322928c84d16f7adbbe72b459a7866fc10e","after":"6ea5ba2d4425366ecf0e9e36140dbf44deed6951","ref":"refs/heads/master","pushedAt":"2024-04-11T03:36:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"wrap: Do not print \"dlopen is called for '(null)'\"\n\nIf dlopen is called with (null) for the filename, it does nothing so\nit's not useful to print a debug message for such case.\n\nBut the current implementation shows too many message as follows.\n\n $ sudo apt install vulkan-tools\n\n $ uftrace record -P. -la -v vkcube\n ...\n wrap: dlopen is called for 'libVkLayer_MESA_device_select.so'\n wrap: dlopen is called for '(null)'\n wrap: dlopen is called for '(null)'\n (... repeated 18 more times ...)\n mcount: shmem_finish: tid: 10312 seqnum = 2 curr = 0, nr_buf = 2 max_buf = 2\n\nThis patch is to avoid printing these unhelpful messages.\n\nSigned-off-by: Honggyu Kim ","shortMessageHtmlLink":"wrap: Do not print \"dlopen is called for '(null)'\""}},{"before":"c9da63f990d5b127516496280c31e3697711a4d5","after":"1d6e8322928c84d16f7adbbe72b459a7866fc10e","ref":"refs/heads/master","pushedAt":"2024-04-11T03:36:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"utils: Lower the debug level after dwfl_module_getdwarf\n\nThe current return value check after dwfl_module_getdwarf shows too\nmany repeated debug messages as follows.\n\n $ sudo apt install vulkan-tools\n\n $ uftrace record -P. -la -v vkcube\n uftrace: running uftrace v0.15.2-32-g1919a ( x86_64 dwarf python3 luajit tui perf sched dynamic kernel )\n uftrace: checking binary /usr/bin/vkcube\n uftrace: removing uftrace.data.old directory\n uftrace: using /home/honggyu/usr/lib/uftrace/libmcount.so library for tracing\n uftrace: creating 2 thread(s) for recording\n mcount: initializing mcount library\n symbol: cannot find debug file: No DWARF information found\n symbol: cannot find debug file: No DWARF information found\n (... repeated about 40 times ...)\n symbol: cannot find debug file: No DWARF information found\n symbol: cannot find debug file: No DWARF information found\n dwarf: prepare debug info\n dynamic: dynamic patch type: vkcube: 0 (none)\n plthook: setup nested PLT hooking \"/usr/bin/vkcube\"\n mcount: mcount setup done\n\nso it'd be better to lower the debug level to pr_dbg2.\n\nFixed: #1905\nSigned-off-by: Honggyu Kim ","shortMessageHtmlLink":"utils: Lower the debug level after dwfl_module_getdwarf"}},{"before":"917f2a1231e287304e165893ccf3fdcb0c99488c","after":"c9da63f990d5b127516496280c31e3697711a4d5","ref":"refs/heads/master","pushedAt":"2024-03-24T23:57:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"plthook: Fix a coding style issue\n\nI forgot to install the pre-commit hooks on my new VM. It resulted\nin a pre-commit check failure on Github actions. Let's fix it.\n\nSigned-off-by: Namhyung Kim ","shortMessageHtmlLink":"plthook: Fix a coding style issue"}},{"before":"c60c0621cab7e9455ec0376f136335ec6f6955a3","after":"917f2a1231e287304e165893ccf3fdcb0c99488c","ref":"refs/heads/master","pushedAt":"2024-03-24T23:46:33.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"Merge branch 'misc-fix'\n\nA couple of random fixes and updates.\n\nSigned-off-by: Namhyung Kim ","shortMessageHtmlLink":"Merge branch 'misc-fix'"}},{"before":"c309919e5bd383bec111ae53e0950f83d46eb631","after":"c60c0621cab7e9455ec0376f136335ec6f6955a3","ref":"refs/heads/master","pushedAt":"2024-03-23T07:57:15.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"Merge branch 'kernel-fix'\n\nA small set of random fixes in the kernel tracing code.\nThe current kernel test result is like below:\n\n $ sudo make runtest TESTARG='-c gcc -t 15 -p kernel'\n TEST test_run\n Start 15 tests without worker pool\n\n Compiler gcc\n Runtime test case pg\n ------------------------: O0 O1 O2 O3 Os\n 022 filter_kernel : OK OK OK OK OK\n 079 replay_kernel_D : NG NG NG NG NG\n 080 replay_kernel_D2 : OK OK OK OK OK\n 081 kernel_depth : NG NG NG NG NG\n 103 dump_kernel : OK OK OK OK OK\n 104 graph_kernel : NG NG NG NG NG\n 111 kernel_tid : NG NG NG NG NG\n 132 trigger_kernel : NG NG NG NG NG\n 137 kernel_tid_update : OK OK OK OK OK\n 138 kernel_dynamic : OK OK OK OK OK\n 139 kernel_dynamic2 : OK OK OK OK OK\n 143 recv_kernel : NG NG NG NG NG\n 148 event_kernel : OK OK OK OK OK\n 149 event_kernel2 : OK OK OK OK OK\n 174 replay_filter_kernel: NG NG NG NG NG\n\n runtime test stats\n ====================\n total 75 Tests executed (success: 53.33%)\n OK: 15 Test succeeded\n OK: 25 Test succeeded (with some fixup)\n NG: 35 Different test result\n NZ: 0 Non-zero return value\n SG: 0 Abnormal exit by signal\n TM: 0 Test ran too long\n BI: 0 Build failed\n LA: 0 Unsupported Language\n SK: 0 Skipped\n\nSigned-off-by: Namhyung Kim ","shortMessageHtmlLink":"Merge branch 'kernel-fix'"}},{"before":"880afeb267f115115a3a5957a6089c461dc91274","after":"c309919e5bd383bec111ae53e0950f83d46eb631","ref":"refs/heads/master","pushedAt":"2024-03-23T05:55:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"test: Fix Python SyntaxWarning on invalid escape sequence\n\nSigned-off-by: Ameya Vikram Singh ","shortMessageHtmlLink":"test: Fix Python SyntaxWarning on invalid escape sequence"}},{"before":"1919a15cd71dbb9fed4138923a1954c79b638796","after":"880afeb267f115115a3a5957a6089c461dc91274","ref":"refs/heads/master","pushedAt":"2024-03-23T05:55:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"build: Fix compiler warnings using python2.7\n\nFix compiler warnings when using python2.7\n_POSIX_C_SOURCE and _XOPEN_SOURCE macros are defined in python header.\n\n/usr/include/python2.7/pyconfig-64.h:1191:0: error: \"_POSIX_C_SOURCE\" redefined [-Werror]\n #define _POSIX_C_SOURCE 200112L\n ^\nIn file included from /usr/include/inttypes.h:25:0,\n from /home/uftrace/libmcount/mcount.h:12,\n from /home/uftrace/utils/script.h:11,\n from /home/uftrace/utils/script.c:13:\n/usr/include/features.h:168:0: note: this is the location of the previous definition\n # define _POSIX_C_SOURCE 200809L\n ^\nIn file included from /usr/include/python2.7/pyconfig.h:6:0,\n from /usr/include/python2.7/Python.h:8,\n from /home/uftrace/utils/script-python.h:18,\n from /home/uftrace/utils/script.h:13,\n from /home/uftrace/utils/script.c:13:\n/usr/include/python2.7/pyconfig-64.h:1213:0: error: \"_XOPEN_SOURCE\" redefined [-Werror]\n #define _XOPEN_SOURCE 600\n ^\nIn file included from /usr/include/inttypes.h:25:0,\n from /home/uftrace/libmcount/mcount.h:12,\n from /home/uftrace/utils/script.h:11,\n from /home/uftrace/utils/script.c:13:\n/usr/include/features.h:170:0: note: this is the location of the previous definition\n # define _XOPEN_SOURCE 700\n ^\n\nFixed: https://github.com/namhyung/uftrace/issues/1276\n\nSigned-off-by: Michelle Jin ","shortMessageHtmlLink":"build: Fix compiler warnings using python2.7"}},{"before":"18d225ad4cb4e5e84a8866889ba55f200ef96591","after":"1919a15cd71dbb9fed4138923a1954c79b638796","ref":"refs/heads/master","pushedAt":"2024-03-13T05:44:15.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"Merge branch 'exception-guard'\n\nHandle a corner case that an exception is thrown during initialization\nof a static local variable. In this case, a little differnet exception\nhandling routine in C++ is called which put uftrace in an infinite loop.\n\nLet's handle the case separately by wrapping __cxa_guard_abort().\n\nSigned-off-by: Namhyung Kim ","shortMessageHtmlLink":"Merge branch 'exception-guard'"}},{"before":null,"after":"6e99c5e42943937d35d7cf78992b213cf6fe5915","ref":"refs/heads/check/exception-guard","pushedAt":"2024-03-11T06:09:37.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"mcount: Wrap __cxa_guard_abort() for exception handling\n\nWhen a static variable is defined in a function (local variable), C++\nseems to add a hidden guard variable to protect it from concurrent\naccesses in a multi-threaded program. But it has an exception handling\nlogic with __cxa_guard_abort() which should be passed to libmcount too.\n\nSigned-off-by: Namhyung Kim ","shortMessageHtmlLink":"mcount: Wrap __cxa_guard_abort() for exception handling"}},{"before":"3d12c1cd74298fc7cc6c466366245a4367ed6d4d","after":"18d225ad4cb4e5e84a8866889ba55f200ef96591","ref":"refs/heads/master","pushedAt":"2024-03-06T06:20:19.000Z","pushType":"push","commitsCount":9,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"Merge branch 'separate-dwarf'\n\nAdd support for the separate debug files using libdwfl.\nMany distros deploy separate debug packages for system utilities and\nthis will improve tracing experience of such command when the debug\npackage is installed. For example, you can apply dynamic tracing\nwith automatic arguments to the system binary like 'ls'.\n\nFixed: #1144\n\nSigned-off-by: Namhyung Kim ","shortMessageHtmlLink":"Merge branch 'separate-dwarf'"}},{"before":"11cbefac3fad911e93b28513c172071ec7f4f129","after":"3d12c1cd74298fc7cc6c466366245a4367ed6d4d","ref":"refs/heads/master","pushedAt":"2024-03-06T05:36:54.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"Merge pull request #1895 from nadongguri/nadongguri/new_arg_for_oct\n\nSupport new octal argument format (\"o\") for file mode (0755).\r\nConvert the autoargs to use octal format in related functions\r\nlike chmod(2).\r\n\r\nSigned-off-by: Namhyung Kim ","shortMessageHtmlLink":"Merge pull request #1895 from nadongguri/nadongguri/new_arg_for_oct"}},{"before":"25b90354e0e86d240c307377b05a620b7289a3c0","after":"11cbefac3fad911e93b28513c172071ec7f4f129","ref":"refs/heads/master","pushedAt":"2024-03-02T22:26:03.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"Merge branch 'test-update'\n\nUpdate and fix some problems in the test code and make it more stable\nwith variable system loads.\n\nWith these changes, sucess rate of the runtime tests went up from\n87.44% to 88.32%.\n\n runtime test stats\n ====================\n total 8610 Tests executed (success: 88.32%)\n OK: 7481 Test succeeded\n OK: 123 Test succeeded (with some fixup)\n NG: 32 Different test result\n NZ: 8 Non-zero return value\n SG: 1 Abnormal exit by signal\n TM: 0 Test ran too long\n BI: 0 Build failed\n LA: 0 Unsupported Language\n SK: 965 Skipped\n\nSigned-off-by: Namhyung Kim ","shortMessageHtmlLink":"Merge branch 'test-update'"}},{"before":"fd87db25c9d294382f28efc8c020427f851baa20","after":"8d0150257781f72e3776f25f806735ee1608b276","ref":"refs/heads/review/separate-dwarf","pushedAt":"2024-02-26T00:50:45.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"build: Do not use libelf in the python extension\n\nThe python extension module is to trace python functions and it doesn't\nneed to deal with ELF files in general. The only place needed is to get\nthe address of libmcount functions. As it's the minimal functionality,\nwe can force to use the symbol-rawelf code by removing HAVE_LIBELF\ndefinition in the PYTHON_CFLAGS. It'd make it lighter without further\ndependency.\n\nBut this requires separate handling the object files for the python\nmodule. Let's use a different object file suffix (.oy) to apply the\ncompiler flags separately.\n\nSigned-off-by: Namhyung Kim ","shortMessageHtmlLink":"build: Do not use libelf in the python extension"}},{"before":null,"after":"fd87db25c9d294382f28efc8c020427f851baa20","ref":"refs/heads/review/separate-dwarf","pushedAt":"2024-02-18T22:18:09.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"symbol: Add elf_retry() to use debug info if possible\n\nModern distros provide separate debug packages for system binaries.\nAs it added the separate debug file support, it can also use it to find\nsymbol table of the binary too. And with the debug info, it can support\nargument and return values.\n\nThe below is an example to use dynamic tracing for the nproc binary and\nto show automatic argument/return values.\n\n $ uftrace -a -P. --no-libcall nproc\n 8\n # DURATION TID FUNCTION\n [2450185] | main(1, 0x7ffce57b5ec8) {\n 143.049 us [2450185] | set_program_name(\"nproc\");\n 0.769 us [2450185] | atexit();\n [2450185] | num_processors(NPROC_CURRENT_OVERRIDABLE) {\n 0.194 us [2450185] | parse_omp_threads(\"NULL\") = 0;\n 0.059 us [2450185] | parse_omp_threads(\"NULL\") = 0;\n 4.007 us [2450185] | } = 8; /* num_processors */\n 330.818 us [2450185] | } = 0; /* main */\n [2450185] | close_stdout() {\n [2450185] | close_stream(&_IO_2_1_stdout_) {\n [2450185] | rpl_fclose(&_IO_2_1_stdout_) {\n 0.507 us [2450185] | rpl_fflush(&_IO_2_1_stdout_) = 0;\n 2.621 us [2450185] | } = 0; /* rpl_fclose */\n 3.535 us [2450185] | } = 0; /* close_stream */\n [2450185] | close_stream(&_IO_2_1_stderr_) {\n [2450185] | rpl_fclose(&_IO_2_1_stderr_) {\n 0.113 us [2450185] | rpl_fflush(&_IO_2_1_stderr_) = 0;\n 0.704 us [2450185] | } = 0; /* rpl_fclose */\n 0.911 us [2450185] | } = 0; /* close_stream */\n 4.907 us [2450185] | } /* close_stdout */\n\nSigned-off-by: Namhyung Kim ","shortMessageHtmlLink":"symbol: Add elf_retry() to use debug info if possible"}},{"before":"4d614f8fafd3c01535c464f59b901b276cbaaea6","after":"25b90354e0e86d240c307377b05a620b7289a3c0","ref":"refs/heads/master","pushedAt":"2024-02-17T18:16:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"python: Fix GC isn't working correctly.\n\nThe uftrace_python_symbol keeps code PyObject in rb tree so GC can\nnot run correctly in the trace process. Fixed the problem by\ndropping it. and change rb compare from code PyObject to func_name\n\nFixed: #1886\nSigned-off-by: Yi Hong \nSigned-off-by: Honggyu Kim ","shortMessageHtmlLink":"python: Fix GC isn't working correctly."}},{"before":"94c26556043adbc241b528aa7fb06dd0789c9c7a","after":"4d614f8fafd3c01535c464f59b901b276cbaaea6","ref":"refs/heads/master","pushedAt":"2024-02-13T16:43:17.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"slide: Add tensorflow and keras tracing example\n\nIt'd be better to have more practical python tracing example in slide\ndocument so this patch adds tensorflow and keras tracing example.\n\nThe example python program can be found at [1].\n\n[1] https://github.com/keras-team/keras-io/blob/master/examples/vision/mnist_convnet.py\nSigned-off-by: Honggyu Kim ","shortMessageHtmlLink":"slide: Add tensorflow and keras tracing example"}},{"before":"ecca1ecb8bd0818b6abc065e14cc309054227b4f","after":"94c26556043adbc241b528aa7fb06dd0789c9c7a","ref":"refs/heads/master","pushedAt":"2024-02-09T20:08:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"namhyung","name":"Namhyung Kim","path":"/namhyung","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/48503?s=80&v=4"},"commit":{"message":"misc: Fix warnings on GitHub Actions\n\nThere are warnings on the GitHub Actions due to Node.js 16\ndeprecation. Update the version of the actions to get rid of\nthe warnings.\n\nhttps://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20\n\nSigned-off-by: Yi Hong ","shortMessageHtmlLink":"misc: Fix warnings on GitHub Actions"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAET3f8XAA","startCursor":null,"endCursor":null}},"title":"Activity ยท namhyung/uftrace"}