Merge "Do not check for debuggable / profilable for app tracing."

This commit is contained in:
Primiano Tucci 2021-02-18 17:52:31 +00:00 committed by Gerrit Code Review
commit c89dd8594e
2 changed files with 11 additions and 32 deletions

View file

@ -103,14 +103,6 @@ void atrace_setup();
*/
void atrace_update_tags();
/**
* Set whether the process is debuggable. By default the process is not
* considered debuggable. If the process is not debuggable then application-
* level tracing is not allowed unless the ro.debuggable system property is
* set to '1'.
*/
void atrace_set_debuggable(bool debuggable);
/**
* Set whether tracing is enabled for the current process. This is used to
* prevent tracing within the Zygote process.

View file

@ -52,7 +52,6 @@ constexpr uint32_t kSeqNoNotInit = static_cast<uint32_t>(-1);
atomic_bool atrace_is_ready = ATOMIC_VAR_INIT(false);
int atrace_marker_fd = -1;
uint64_t atrace_enabled_tags = ATRACE_TAG_NOT_READY;
static bool atrace_is_debuggable = false;
static atomic_bool atrace_is_enabled = ATOMIC_VAR_INIT(true);
static pthread_mutex_t atrace_tags_mutex = PTHREAD_MUTEX_INITIALIZER;
@ -96,15 +95,6 @@ uint64_t atrace_get_enabled_tags()
return atrace_enabled_tags;
}
// Set whether this process is debuggable, which determines whether
// application-level tracing is allowed when the ro.debuggable system property
// is not set to '1'.
void atrace_set_debuggable(bool debuggable)
{
atrace_is_debuggable = debuggable;
atrace_update_tags();
}
// Check whether the given command line matches one of the comma-separated
// values listed in the app_cmdlines property.
static bool atrace_is_cmdline_match(const char* cmdline)
@ -128,24 +118,21 @@ static bool atrace_is_cmdline_match(const char* cmdline)
// Determine whether application-level tracing is enabled for this process.
static bool atrace_is_app_tracing_enabled()
{
bool sys_debuggable = property_get_bool("ro.debuggable", 0);
bool result = false;
if (sys_debuggable || atrace_is_debuggable) {
// Check whether tracing is enabled for this process.
FILE * file = fopen("/proc/self/cmdline", "re");
if (file) {
char cmdline[4096];
if (fgets(cmdline, sizeof(cmdline), file)) {
result = atrace_is_cmdline_match(cmdline);
} else {
ALOGE("Error reading cmdline: %s (%d)", strerror(errno), errno);
}
fclose(file);
// Check whether tracing is enabled for this process.
FILE * file = fopen("/proc/self/cmdline", "re");
if (file) {
char cmdline[4096];
if (fgets(cmdline, sizeof(cmdline), file)) {
result = atrace_is_cmdline_match(cmdline);
} else {
ALOGE("Error opening /proc/self/cmdline: %s (%d)", strerror(errno),
errno);
ALOGE("Error reading cmdline: %s (%d)", strerror(errno), errno);
}
fclose(file);
} else {
ALOGE("Error opening /proc/self/cmdline: %s (%d)", strerror(errno),
errno);
}
return result;