projects
/
ust.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix destruction to free all memory
[ust.git]
/
libustcmd
/
ustcmd.c
diff --git
a/libustcmd/ustcmd.c
b/libustcmd/ustcmd.c
index 930c078fcd9510aebad1eff190d0817a5280e092..7a05afa20079944b0ce3e79e60efcf06cc17f233 100644
(file)
--- a/
libustcmd/ustcmd.c
+++ b/
libustcmd/ustcmd.c
@@
-26,6
+26,7
@@
#include "ustcomm.h"
#include "ustcmd.h"
#include "ustcomm.h"
#include "ustcmd.h"
+#include "usterr.h"
pid_t *ustcmd_get_online_pids(void)
{
pid_t *ustcmd_get_online_pids(void)
{
@@
-116,7
+117,7
@@
int ustcmd_set_subbuf_size(const char *channel_size, pid_t pid)
asprintf(&cmd, "%s %s", "set_subbuf_size", channel_size);
result = ustcmd_send_cmd(cmd, pid, NULL);
asprintf(&cmd, "%s %s", "set_subbuf_size", channel_size);
result = ustcmd_send_cmd(cmd, pid, NULL);
- if (result) {
+ if (result
!= 1
) {
free(cmd);
return 1;
}
free(cmd);
return 1;
}
@@
-140,7
+141,7
@@
int ustcmd_set_subbuf_num(const char *channel_size, pid_t pid)
asprintf(&cmd, "%s %s", "set_subbuf_num", channel_size);
result = ustcmd_send_cmd(cmd, pid, NULL);
asprintf(&cmd, "%s %s", "set_subbuf_num", channel_size);
result = ustcmd_send_cmd(cmd, pid, NULL);
- if (result) {
+ if (result
!= 1
) {
free(cmd);
return 1;
}
free(cmd);
return 1;
}
@@
-161,7
+162,7
@@
int ustcmd_destroy_trace(pid_t pid)
int result;
result = ustcmd_send_cmd("trace_destroy", pid, NULL);
int result;
result = ustcmd_send_cmd("trace_destroy", pid, NULL);
- if (result) {
+ if (result
!= 1
) {
return USTCMD_ERR_GEN;
}
return USTCMD_ERR_GEN;
}
@@
-179,7
+180,7
@@
int ustcmd_setup_and_start(pid_t pid)
int result;
result = ustcmd_send_cmd("start", pid, NULL);
int result;
result = ustcmd_send_cmd("start", pid, NULL);
- if (result) {
+ if (result
!= 1
) {
return USTCMD_ERR_GEN;
}
return USTCMD_ERR_GEN;
}
@@
-197,7
+198,7
@@
int ustcmd_create_trace(pid_t pid)
int result;
result = ustcmd_send_cmd("trace_create", pid, NULL);
int result;
result = ustcmd_send_cmd("trace_create", pid, NULL);
- if (result) {
+ if (result
!= 1
) {
return USTCMD_ERR_GEN;
}
return USTCMD_ERR_GEN;
}
@@
-215,7
+216,7
@@
int ustcmd_start_trace(pid_t pid)
int result;
result = ustcmd_send_cmd("trace_start", pid, NULL);
int result;
result = ustcmd_send_cmd("trace_start", pid, NULL);
- if (result) {
+ if (result
!= 1
) {
return USTCMD_ERR_GEN;
}
return USTCMD_ERR_GEN;
}
@@
-233,7
+234,7
@@
int ustcmd_alloc_trace(pid_t pid)
int result;
result = ustcmd_send_cmd("trace_alloc", pid, NULL);
int result;
result = ustcmd_send_cmd("trace_alloc", pid, NULL);
- if (result) {
+ if (result
!= 1
) {
return USTCMD_ERR_GEN;
}
return USTCMD_ERR_GEN;
}
@@
-251,7
+252,7
@@
int ustcmd_stop_trace(pid_t pid)
int result;
result = ustcmd_send_cmd("trace_stop", pid, NULL);
int result;
result = ustcmd_send_cmd("trace_stop", pid, NULL);
- if (result) {
+ if (result
!= 1
) {
return USTCMD_ERR_GEN;
}
return USTCMD_ERR_GEN;
}
@@
-308,7
+309,7
@@
int ustcmd_free_cmsf(struct marker_status *cmsf)
* @param cmsf Pointer to CMSF array to be filled (callee allocates, caller
* frees with `ustcmd_free_cmsf')
* @param pid Targeted PID
* @param cmsf Pointer to CMSF array to be filled (callee allocates, caller
* frees with `ustcmd_free_cmsf')
* @param pid Targeted PID
- * @return 0 if successful, or
errors {USTCMD_ERR_ARG, USTCMD_ERR_GEN}
+ * @return 0 if successful, or
-1 on error
*/
int ustcmd_get_cmsf(struct marker_status **cmsf, const pid_t pid)
{
*/
int ustcmd_get_cmsf(struct marker_status **cmsf, const pid_t pid)
{
@@
-318,22
+319,22
@@
int ustcmd_get_cmsf(struct marker_status **cmsf, const pid_t pid)
unsigned int i = 0, cmsf_ind = 0;
if (cmsf == NULL) {
unsigned int i = 0, cmsf_ind = 0;
if (cmsf == NULL) {
- return
USTCMD_ERR_ARG
;
+ return
-1
;
}
result = ustcmd_send_cmd("list_markers", pid, &big_str);
}
result = ustcmd_send_cmd("list_markers", pid, &big_str);
- if (result) {
- return
USTCMD_ERR_GEN
;
+ if (result
!= 1
) {
+ return
-1
;
}
}
- if (
big_str == NULL
) {
-
fprintf(stderr, "ustcmd: error while getting markers list\n
");
- return
USTCMD_ERR_GEN
;
+ if (
result != 1
) {
+
ERR("error while getting markers list
");
+ return
-1
;
}
tmp_cmsf = (struct marker_status *) malloc(sizeof(struct marker_status) *
(ustcmd_count_nl(big_str) + 1));
if (tmp_cmsf == NULL) {
}
tmp_cmsf = (struct marker_status *) malloc(sizeof(struct marker_status) *
(ustcmd_count_nl(big_str) + 1));
if (tmp_cmsf == NULL) {
- return
USTCMD_ERR_GEN
;
+ return
-1
;
}
/* Parse received reply string (format: "[chan]/[mark] [st] [fs]"): */
}
/* Parse received reply string (format: "[chan]/[mark] [st] [fs]"): */
@@
-365,30
+366,28
@@
int ustcmd_get_cmsf(struct marker_status **cmsf, const pid_t pid)
}
/**
}
/**
- * S
hoots a given command using ustcomm.
+ * S
ends a given command to a traceable process
*
*
- * @param cmd Null-terminated command to s
hoot
+ * @param cmd Null-terminated command to s
end
* @param pid Targeted PID
* @param reply Pointer to string to be filled with a reply string (must
* be NULL if no reply is needed for the given command).
* @param pid Targeted PID
* @param reply Pointer to string to be filled with a reply string (must
* be NULL if no reply is needed for the given command).
- * @return
0 if successful, or errors {USTCMD_ERR_ARG, USTCMD_ERR_CONN}
+ * @return
-1 if successful, 0 on EOT, 1 on success
*/
int ustcmd_send_cmd(const char *cmd, const pid_t pid, char **reply)
{
struct ustcomm_connection conn;
*/
int ustcmd_send_cmd(const char *cmd, const pid_t pid, char **reply)
{
struct ustcomm_connection conn;
-
- if (cmd == NULL) {
- return USTCMD_ERR_ARG;
- }
+ int retval;
if (ustcomm_connect_app(pid, &conn)) {
if (ustcomm_connect_app(pid, &conn)) {
- fprintf(stderr, "ustcmd_send_cmd: could not connect to PID %u\n",
- (unsigned int) pid);
- return USTCMD_ERR_CONN;
+ ERR("could not connect to PID %u", (unsigned int) pid);
+ return -1;
}
}
- ustcomm_send_request(&conn, cmd, reply);
+
retval =
ustcomm_send_request(&conn, cmd, reply);
- return 0;
+ ustcomm_close_app(&conn);
+
+ return retval;
}
}
This page took
0.024699 seconds
and
4
git commands to generate.