projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: mi print of probe attributes + validation
[lttng-tools.git]
/
src
/
common
/
mi-lttng.c
diff --git
a/src/common/mi-lttng.c
b/src/common/mi-lttng.c
index a636c71b20b4b0b30fc7b4fec40839de3fc00d0b..a250546d75bfe45d1c974725187ffef258d19eef 100644
(file)
--- a/
src/common/mi-lttng.c
+++ b/
src/common/mi-lttng.c
@@
-305,6
+305,8
@@
const char *mi_lttng_domaintype_string(enum lttng_domain_type value)
return config_domain_type_ust;
case LTTNG_DOMAIN_JUL:
return config_domain_type_jul;
return config_domain_type_ust;
case LTTNG_DOMAIN_JUL:
return config_domain_type_jul;
+ case LTTNG_DOMAIN_LOG4J:
+ return config_domain_type_log4j;
default:
/* Should not have an unknown domain */
assert(0);
default:
/* Should not have an unknown domain */
assert(0);
@@
-352,7
+354,7
@@
struct mi_writer *mi_lttng_writer_create(int fd_output, int mi_output_type)
goto end;
}
if (mi_output_type == LTTNG_MI_XML) {
goto end;
}
if (mi_output_type == LTTNG_MI_XML) {
- mi_writer->writer = config_writer_create(fd_output);
+ mi_writer->writer = config_writer_create(fd_output
, 0
);
if (!mi_writer->writer) {
goto err_destroy;
}
if (!mi_writer->writer) {
goto err_destroy;
}
@@
-912,6
+914,16
@@
int mi_lttng_event_function_probe(struct mi_writer *writer,
{
int ret;
{
int ret;
+ ret = mi_lttng_writer_open_element(writer, config_element_attributes);
+ if (ret) {
+ goto end;
+ }
+
+ ret = mi_lttng_writer_open_element(writer, config_element_probe_attributes);
+ if (ret) {
+ goto end;
+ }
+
if (event->attr.probe.addr != 0) {
/* event probe address */
ret = mi_lttng_writer_write_element_unsigned_int(writer,
if (event->attr.probe.addr != 0) {
/* event probe address */
ret = mi_lttng_writer_write_element_unsigned_int(writer,
@@
-934,6
+946,9
@@
int mi_lttng_event_function_probe(struct mi_writer *writer,
goto end;
}
}
goto end;
}
}
+
+ /* Close probe_attributes and attributes */
+ ret = mi_lttng_close_multi_element(writer, 2);
end:
return ret;
}
end:
return ret;
}
@@
-942,9
+957,29
@@
LTTNG_HIDDEN
int mi_lttng_event_function_entry(struct mi_writer *writer,
struct lttng_event *event)
{
int mi_lttng_event_function_entry(struct mi_writer *writer,
struct lttng_event *event)
{
+ int ret;
+
+ ret = mi_lttng_writer_open_element(writer, config_element_attributes);
+ if (ret) {
+ goto end;
+ }
+
+ ret = mi_lttng_writer_open_element(writer, config_element_probe_attributes);
+ if (ret) {
+ goto end;
+ }
+
/* event probe symbol_name */
/* event probe symbol_name */
- ret
urn
mi_lttng_writer_write_element_string(writer,
+ ret
=
mi_lttng_writer_write_element_string(writer,
config_element_symbol_name, event->attr.ftrace.symbol_name);
config_element_symbol_name, event->attr.ftrace.symbol_name);
+ if (ret) {
+ goto end;
+ }
+
+ /* Close function_attributes and attributes */
+ ret = mi_lttng_close_multi_element(writer, 2);
+end:
+ return ret;
}
LTTNG_HIDDEN
}
LTTNG_HIDDEN
@@
-974,6
+1009,8
@@
int mi_lttng_event(struct mi_writer *writer,
}
break;
}
}
break;
}
+ case LTTNG_EVENT_FUNCTION:
+ /* Fallthrough */
case LTTNG_EVENT_PROBE:
ret = mi_lttng_event_function_probe(writer, event);
break;
case LTTNG_EVENT_PROBE:
ret = mi_lttng_event_function_probe(writer, event);
break;
This page took
0.02632 seconds
and
4
git commands to generate.