diff options
| -rw-r--r-- | tools/perf/builtin-probe.c | 5 | ||||
| -rw-r--r-- | tools/perf/util/probe-event.c | 28 | ||||
| -rw-r--r-- | tools/perf/util/probe-finder.c | 7 |
3 files changed, 24 insertions, 16 deletions
diff --git a/tools/perf/builtin-probe.c b/tools/perf/builtin-probe.c index c63fa2925075..347729e29a92 100644 --- a/tools/perf/builtin-probe.c +++ b/tools/perf/builtin-probe.c | |||
| @@ -290,8 +290,11 @@ static void cleanup_params(void) | |||
| 290 | 290 | ||
| 291 | static void pr_err_with_code(const char *msg, int err) | 291 | static void pr_err_with_code(const char *msg, int err) |
| 292 | { | 292 | { |
| 293 | char sbuf[STRERR_BUFSIZE]; | ||
| 294 | |||
| 293 | pr_err("%s", msg); | 295 | pr_err("%s", msg); |
| 294 | pr_debug(" Reason: %s (Code: %d)", strerror(-err), err); | 296 | pr_debug(" Reason: %s (Code: %d)", |
| 297 | strerror_r(-err, sbuf, sizeof(sbuf)), err); | ||
| 295 | pr_err("\n"); | 298 | pr_err("\n"); |
| 296 | } | 299 | } |
| 297 | 300 | ||
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c index bf39c23b275d..f73595fc0627 100644 --- a/tools/perf/util/probe-event.c +++ b/tools/perf/util/probe-event.c | |||
| @@ -573,7 +573,7 @@ static int get_real_path(const char *raw_path, const char *comp_dir, | |||
| 573 | 573 | ||
| 574 | static int __show_one_line(FILE *fp, int l, bool skip, bool show_num) | 574 | static int __show_one_line(FILE *fp, int l, bool skip, bool show_num) |
| 575 | { | 575 | { |
| 576 | char buf[LINEBUF_SIZE]; | 576 | char buf[LINEBUF_SIZE], sbuf[STRERR_BUFSIZE]; |
| 577 | const char *color = show_num ? "" : PERF_COLOR_BLUE; | 577 | const char *color = show_num ? "" : PERF_COLOR_BLUE; |
| 578 | const char *prefix = NULL; | 578 | const char *prefix = NULL; |
| 579 | 579 | ||
| @@ -593,7 +593,8 @@ static int __show_one_line(FILE *fp, int l, bool skip, bool show_num) | |||
| 593 | return 1; | 593 | return 1; |
| 594 | error: | 594 | error: |
| 595 | if (ferror(fp)) { | 595 | if (ferror(fp)) { |
| 596 | pr_warning("File read error: %s\n", strerror(errno)); | 596 | pr_warning("File read error: %s\n", |
| 597 | strerror_r(errno, sbuf, sizeof(sbuf))); | ||
| 597 | return -1; | 598 | return -1; |
| 598 | } | 599 | } |
| 599 | return 0; | 600 | return 0; |
| @@ -626,6 +627,7 @@ static int __show_line_range(struct line_range *lr, const char *module) | |||
| 626 | FILE *fp; | 627 | FILE *fp; |
| 627 | int ret; | 628 | int ret; |
| 628 | char *tmp; | 629 | char *tmp; |
| 630 | char sbuf[STRERR_BUFSIZE]; | ||
| 629 | 631 | ||
| 630 | /* Search a line range */ | 632 | /* Search a line range */ |
| 631 | dinfo = open_debuginfo(module, false); | 633 | dinfo = open_debuginfo(module, false); |
| @@ -662,7 +664,7 @@ static int __show_line_range(struct line_range *lr, const char *module) | |||
| 662 | fp = fopen(lr->path, "r"); | 664 | fp = fopen(lr->path, "r"); |
| 663 | if (fp == NULL) { | 665 | if (fp == NULL) { |
| 664 | pr_warning("Failed to open %s: %s\n", lr->path, | 666 | pr_warning("Failed to open %s: %s\n", lr->path, |
| 665 | strerror(errno)); | 667 | strerror_r(errno, sbuf, sizeof(sbuf))); |
| 666 | return -errno; | 668 | return -errno; |
| 667 | } | 669 | } |
| 668 | /* Skip to starting line number */ | 670 | /* Skip to starting line number */ |
| @@ -1410,8 +1412,7 @@ int synthesize_perf_probe_arg(struct perf_probe_arg *pa, char *buf, size_t len) | |||
| 1410 | 1412 | ||
| 1411 | return tmp - buf; | 1413 | return tmp - buf; |
| 1412 | error: | 1414 | error: |
| 1413 | pr_debug("Failed to synthesize perf probe argument: %s\n", | 1415 | pr_debug("Failed to synthesize perf probe argument: %d\n", ret); |
| 1414 | strerror(-ret)); | ||
| 1415 | return ret; | 1416 | return ret; |
| 1416 | } | 1417 | } |
| 1417 | 1418 | ||
| @@ -1460,8 +1461,7 @@ static char *synthesize_perf_probe_point(struct perf_probe_point *pp) | |||
| 1460 | 1461 | ||
| 1461 | return buf; | 1462 | return buf; |
| 1462 | error: | 1463 | error: |
| 1463 | pr_debug("Failed to synthesize perf probe point: %s\n", | 1464 | pr_debug("Failed to synthesize perf probe point: %d\n", ret); |
| 1464 | strerror(-ret)); | ||
| 1465 | free(buf); | 1465 | free(buf); |
| 1466 | return NULL; | 1466 | return NULL; |
| 1467 | } | 1467 | } |
| @@ -1787,7 +1787,7 @@ static void clear_probe_trace_event(struct probe_trace_event *tev) | |||
| 1787 | 1787 | ||
| 1788 | static void print_open_warning(int err, bool is_kprobe) | 1788 | static void print_open_warning(int err, bool is_kprobe) |
| 1789 | { | 1789 | { |
| 1790 | char sbuf[128]; | 1790 | char sbuf[STRERR_BUFSIZE]; |
| 1791 | 1791 | ||
| 1792 | if (err == -ENOENT) { | 1792 | if (err == -ENOENT) { |
| 1793 | const char *config; | 1793 | const char *config; |
| @@ -1817,7 +1817,7 @@ static void print_both_open_warning(int kerr, int uerr) | |||
| 1817 | pr_warning("Please rebuild kernel with CONFIG_KPROBE_EVENTS " | 1817 | pr_warning("Please rebuild kernel with CONFIG_KPROBE_EVENTS " |
| 1818 | "or/and CONFIG_UPROBE_EVENTS.\n"); | 1818 | "or/and CONFIG_UPROBE_EVENTS.\n"); |
| 1819 | else { | 1819 | else { |
| 1820 | char sbuf[128]; | 1820 | char sbuf[STRERR_BUFSIZE]; |
| 1821 | pr_warning("Failed to open kprobe events: %s.\n", | 1821 | pr_warning("Failed to open kprobe events: %s.\n", |
| 1822 | strerror_r(-kerr, sbuf, sizeof(sbuf))); | 1822 | strerror_r(-kerr, sbuf, sizeof(sbuf))); |
| 1823 | pr_warning("Failed to open uprobe events: %s.\n", | 1823 | pr_warning("Failed to open uprobe events: %s.\n", |
| @@ -2038,6 +2038,7 @@ static int write_probe_trace_event(int fd, struct probe_trace_event *tev) | |||
| 2038 | { | 2038 | { |
| 2039 | int ret = 0; | 2039 | int ret = 0; |
| 2040 | char *buf = synthesize_probe_trace_command(tev); | 2040 | char *buf = synthesize_probe_trace_command(tev); |
| 2041 | char sbuf[STRERR_BUFSIZE]; | ||
| 2041 | 2042 | ||
| 2042 | if (!buf) { | 2043 | if (!buf) { |
| 2043 | pr_debug("Failed to synthesize probe trace event.\n"); | 2044 | pr_debug("Failed to synthesize probe trace event.\n"); |
| @@ -2049,7 +2050,7 @@ static int write_probe_trace_event(int fd, struct probe_trace_event *tev) | |||
| 2049 | ret = write(fd, buf, strlen(buf)); | 2050 | ret = write(fd, buf, strlen(buf)); |
| 2050 | if (ret <= 0) | 2051 | if (ret <= 0) |
| 2051 | pr_warning("Failed to write event: %s\n", | 2052 | pr_warning("Failed to write event: %s\n", |
| 2052 | strerror(errno)); | 2053 | strerror_r(errno, sbuf, sizeof(sbuf))); |
| 2053 | } | 2054 | } |
| 2054 | free(buf); | 2055 | free(buf); |
| 2055 | return ret; | 2056 | return ret; |
| @@ -2063,7 +2064,7 @@ static int get_new_event_name(char *buf, size_t len, const char *base, | |||
| 2063 | /* Try no suffix */ | 2064 | /* Try no suffix */ |
| 2064 | ret = e_snprintf(buf, len, "%s", base); | 2065 | ret = e_snprintf(buf, len, "%s", base); |
| 2065 | if (ret < 0) { | 2066 | if (ret < 0) { |
| 2066 | pr_debug("snprintf() failed: %s\n", strerror(-ret)); | 2067 | pr_debug("snprintf() failed: %d\n", ret); |
| 2067 | return ret; | 2068 | return ret; |
| 2068 | } | 2069 | } |
| 2069 | if (!strlist__has_entry(namelist, buf)) | 2070 | if (!strlist__has_entry(namelist, buf)) |
| @@ -2079,7 +2080,7 @@ static int get_new_event_name(char *buf, size_t len, const char *base, | |||
| 2079 | for (i = 1; i < MAX_EVENT_INDEX; i++) { | 2080 | for (i = 1; i < MAX_EVENT_INDEX; i++) { |
| 2080 | ret = e_snprintf(buf, len, "%s_%d", base, i); | 2081 | ret = e_snprintf(buf, len, "%s_%d", base, i); |
| 2081 | if (ret < 0) { | 2082 | if (ret < 0) { |
| 2082 | pr_debug("snprintf() failed: %s\n", strerror(-ret)); | 2083 | pr_debug("snprintf() failed: %d\n", ret); |
| 2083 | return ret; | 2084 | return ret; |
| 2084 | } | 2085 | } |
| 2085 | if (!strlist__has_entry(namelist, buf)) | 2086 | if (!strlist__has_entry(namelist, buf)) |
| @@ -2444,7 +2445,8 @@ static int __del_trace_probe_event(int fd, struct str_node *ent) | |||
| 2444 | printf("Removed event: %s\n", ent->s); | 2445 | printf("Removed event: %s\n", ent->s); |
| 2445 | return 0; | 2446 | return 0; |
| 2446 | error: | 2447 | error: |
| 2447 | pr_warning("Failed to delete event: %s\n", strerror(-ret)); | 2448 | pr_warning("Failed to delete event: %s\n", |
| 2449 | strerror_r(-ret, buf, sizeof(buf))); | ||
| 2448 | return ret; | 2450 | return ret; |
| 2449 | } | 2451 | } |
| 2450 | 2452 | ||
diff --git a/tools/perf/util/probe-finder.c b/tools/perf/util/probe-finder.c index dca9145d704c..9c593561aa71 100644 --- a/tools/perf/util/probe-finder.c +++ b/tools/perf/util/probe-finder.c | |||
| @@ -281,6 +281,7 @@ static int convert_variable_type(Dwarf_Die *vr_die, | |||
| 281 | struct probe_trace_arg_ref **ref_ptr = &tvar->ref; | 281 | struct probe_trace_arg_ref **ref_ptr = &tvar->ref; |
| 282 | Dwarf_Die type; | 282 | Dwarf_Die type; |
| 283 | char buf[16]; | 283 | char buf[16]; |
| 284 | char sbuf[STRERR_BUFSIZE]; | ||
| 284 | int bsize, boffs, total; | 285 | int bsize, boffs, total; |
| 285 | int ret; | 286 | int ret; |
| 286 | 287 | ||
| @@ -367,7 +368,7 @@ formatted: | |||
| 367 | if (ret >= 16) | 368 | if (ret >= 16) |
| 368 | ret = -E2BIG; | 369 | ret = -E2BIG; |
| 369 | pr_warning("Failed to convert variable type: %s\n", | 370 | pr_warning("Failed to convert variable type: %s\n", |
| 370 | strerror(-ret)); | 371 | strerror_r(-ret, sbuf, sizeof(sbuf))); |
| 371 | return ret; | 372 | return ret; |
| 372 | } | 373 | } |
| 373 | tvar->type = strdup(buf); | 374 | tvar->type = strdup(buf); |
| @@ -779,10 +780,12 @@ static int find_lazy_match_lines(struct intlist *list, | |||
| 779 | size_t line_len; | 780 | size_t line_len; |
| 780 | ssize_t len; | 781 | ssize_t len; |
| 781 | int count = 0, linenum = 1; | 782 | int count = 0, linenum = 1; |
| 783 | char sbuf[STRERR_BUFSIZE]; | ||
| 782 | 784 | ||
| 783 | fp = fopen(fname, "r"); | 785 | fp = fopen(fname, "r"); |
| 784 | if (!fp) { | 786 | if (!fp) { |
| 785 | pr_warning("Failed to open %s: %s\n", fname, strerror(errno)); | 787 | pr_warning("Failed to open %s: %s\n", fname, |
| 788 | strerror_r(errno, sbuf, sizeof(sbuf))); | ||
| 786 | return -errno; | 789 | return -errno; |
| 787 | } | 790 | } |
| 788 | 791 | ||
