< prev index next >
src/jdk.hotspot.agent/linux/native/libsaproc/ps_proc.c
Print this page
@@ -1,7 +1,7 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
@@ -20,12 +20,10 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
-#ifdef INCLUDE_SA_ATTACH
-
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <errno.h>
@@ -218,13 +216,15 @@
// attach to a process/thread specified by "pid"
static bool ptrace_attach(pid_t pid, char* err_buf, size_t err_buf_len) {
if (ptrace(PTRACE_ATTACH, pid, NULL, NULL) < 0) {
char buf[200];
- char* msg = strerror_r(errno, buf, sizeof(buf));
- snprintf(err_buf, err_buf_len, "ptrace(PTRACE_ATTACH, ..) failed for %d: %s", pid, msg);
+ if (strerror_r(errno, buf, sizeof(buf) == 0)) {
+ snprintf(err_buf, err_buf_len,
+ "ptrace(PTRACE_ATTACH, ..) failed for %d: %s", pid, buf);
print_debug("%s\n", err_buf);
+ }
return false;
} else {
return ptrace_waitpid(pid);
}
}
@@ -406,16 +406,14 @@
// attach to the threads
thr = ph->threads;
while (thr) {
// don't attach to the main thread again
- if (ph->pid != thr->lwp_id && ptrace_attach(thr->lwp_id, err_buf, err_buf_len) != true) {
+ if (pid != thr->lwp_id && ptrace_attach(thr->lwp_id, err_buf, err_buf_len) != true) {
// even if one attach fails, we get return NULL
Prelease(ph);
return NULL;
}
thr = thr->next;
}
return ph;
}
-
-#endif // INCLUDE_SA_ATTACH
< prev index next >