X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=include%2Flttng%2Flttng-error.h;h=97122ed3967d1255e24985af78e8058e6c7d824b;hp=93196fe2be705b5eb6ec37ad8939ba01bfb76c09;hb=2463b7879c00298daa79744cdaae82ac061a4ed8;hpb=cde3e505b7948c15880114268534d21fb1f10a1c diff --git a/include/lttng/lttng-error.h b/include/lttng/lttng-error.h index 93196fe2b..97122ed39 100644 --- a/include/lttng/lttng-error.h +++ b/include/lttng/lttng-error.h @@ -6,20 +6,10 @@ * The following values are all the possible errors the lttng command line * client can quit with. * - * Copyright (C) 2012 - David Goulet + * Copyright (C) 2012 David Goulet * - * This library is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License, version 2.1 only, - * as published by the Free Software Foundation. + * SPDX-License-Identifier: LGPL-2.1-only * - * This library is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License - * for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this library; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef LTTNG_ERROR_H @@ -29,20 +19,10 @@ extern "C" { #endif -#ifndef LTTNG_DEPRECATED -#if defined (__GNUC__) \ - && ((__GNUC_MAJOR__ == 4) && (__GNUC_MINOR__ >= 5) \ - || __GNUC_MAJOR__ >= 5) -#define LTTNG_DEPRECATED(msg) __attribute__((deprecated(msg))) -#else -#define LTTNG_DEPRECATED(msg) __attribute__((deprecated)) -#endif /* defined __GNUC__ */ -#endif /* LTTNG_DEPRECATED */ - enum lttng_error_code { LTTNG_OK = 10, /* Ok */ LTTNG_ERR_UNK = 11, /* Unknown Error */ - LTTNG_ERR_UND = 12, /* Undefine command */ + LTTNG_ERR_UND = 12, /* Undefined command */ LTTNG_ERR_SESSION_STARTED = 13, /* Session is running */ LTTNG_ERR_UNKNOWN_DOMAIN = 14, /* Tracing domain not known */ LTTNG_ERR_NOT_SUPPORTED = 15, /* Operation not supported */ @@ -63,7 +43,7 @@ enum lttng_error_code { LTTNG_ERR_CONNECT_FAIL = 30, /* Unable to connect to unix socket */ LTTNG_ERR_SNAPSHOT_OUTPUT_EXIST = 31, /* Snapshot output already exists */ LTTNG_ERR_EPERM = 32, /* Permission denied */ - LTTNG_ERR_KERN_NA = 33, /* Kernel tracer unavalable */ + LTTNG_ERR_KERN_NA = 33, /* Kernel tracer unavailable */ LTTNG_ERR_KERN_VERSION = 34, /* Kernel tracer not compatible */ LTTNG_ERR_KERN_EVENT_EXIST = 35, /* Kernel event already exists */ LTTNG_ERR_KERN_SESS_FAIL = 36, /* Kernel create session failed */ @@ -103,7 +83,7 @@ enum lttng_error_code { LTTNG_ERR_UST_STREAM_FAIL = 70, /* UST create stream failed */ LTTNG_ERR_SNAPSHOT_NODATA = 71, /* No data in snapshot. */ LTTNG_ERR_NO_CHANNEL = 72, /* No channel found in the session. */ - /* 73 */ + LTTNG_ERR_SESSION_INVALID_CHAR = 73, /* Invalid characters found in session name. */ LTTNG_ERR_UST_LIST_FAIL = 74, /* UST listing events failed */ LTTNG_ERR_UST_EVENT_EXIST = 75, /* UST event exist */ LTTNG_ERR_UST_EVENT_NOT_FOUND = 76, /* UST event not found */ @@ -115,15 +95,15 @@ enum lttng_error_code { LTTNG_ERR_KERN_EVENT_ENOSYS = 82, /* Kernel event type not supported */ LTTNG_ERR_NEED_CHANNEL_NAME = 83, /* Non-default channel exists within session: channel name needs to be specified with '-c name' */ LTTNG_ERR_NO_UST = 84, /* LTTng-UST tracer is not supported. Please rebuild lttng-tools with lttng-ust support enabled. */ - /* 85 */ - /* 86 */ - /* 87 */ - /* 88 */ - /* 89 */ - /* 90 */ - /* 91 */ - /* 92 */ - /* 93 */ + LTTNG_ERR_SAVE_FILE_EXIST = 85, /* Session file already exists. */ + LTTNG_ERR_SAVE_IO_FAIL = 86, /* IO error while writing session configuration */ + LTTNG_ERR_LOAD_INVALID_CONFIG = 87, /* Invalid session configuration */ + LTTNG_ERR_LOAD_IO_FAIL = 88, /* IO error while reading a session configuration */ + LTTNG_ERR_LOAD_SESSION_NOENT = 89, /* Session file not found */ + LTTNG_ERR_MAX_SIZE_INVALID = 90, /* Snapshot max size is invalid. */ + LTTNG_ERR_MI_OUTPUT_TYPE = 91, /* Invalid MI output format */ + LTTNG_ERR_MI_IO_FAIL = 92, /* IO error while writing machine interface output */ + LTTNG_ERR_MI_NOT_IMPLEMENTED = 93, /* Mi feature not implemented */ /* 94 */ /* 95 */ /* 96 */ @@ -142,11 +122,77 @@ enum lttng_error_code { LTTNG_ERR_NO_CONSUMER = 109, /* No consumer exist for the session */ LTTNG_ERR_EXCLUSION_INVAL = 110, /* Invalid event exclusion data */ LTTNG_ERR_EXCLUSION_NOMEM = 111, /* Lack of memory while processing event exclusions */ + LTTNG_ERR_INVALID_EVENT_NAME = 112, /* Invalid event name */ + LTTNG_ERR_INVALID_CHANNEL_NAME = 113, /* Invalid channel name */ + LTTNG_ERR_PROCESS_ATTR_EXISTS = 114, /* Process attribute is already tracked */ + LTTNG_ERR_PROCESS_ATTR_MISSING = 115, /* Process attribute was not tracked */ + LTTNG_ERR_INVALID_CHANNEL_DOMAIN = 116, /* Invalid channel domain */ + LTTNG_ERR_OVERFLOW = 117, /* Overflow occurred. */ + LTTNG_ERR_SESSION_NOT_STARTED = 118, /* Session not started */ + LTTNG_ERR_LIVE_SESSION = 119, /* Live session unsupported */ + LTTNG_ERR_PER_PID_SESSION = 120, /* Per-PID sessions unsupported */ + LTTNG_ERR_KERN_CONTEXT_UNAVAILABLE = 121, /* Context unavailable on this kernel */ + LTTNG_ERR_REGEN_STATEDUMP_FAIL = 122, /* Failed to regenerate the state dump */ + LTTNG_ERR_REGEN_STATEDUMP_NOMEM = 123, /* Failed to regenerate the state dump, not enough memory */ + LTTNG_ERR_NOT_SNAPSHOT_SESSION = 124, /* Session is not in snapshot mode. */ + LTTNG_ERR_INVALID_TRIGGER = 125, /* Invalid trigger provided. */ + LTTNG_ERR_TRIGGER_EXISTS = 126, /* Trigger already registered. */ + LTTNG_ERR_TRIGGER_NOT_FOUND = 127, /* Trigger not found. */ + LTTNG_ERR_COMMAND_CANCELLED = 128, /* Command cancelled. */ + LTTNG_ERR_ROTATION_PENDING = 129, /* Rotation already pending for this session. */ + LTTNG_ERR_ROTATION_NOT_AVAILABLE = 130, /* Rotate feature not available for this type of session (e.g: live) */ + LTTNG_ERR_ROTATION_SCHEDULE_SET = 131, /* Schedule type already set for this session. */ + LTTNG_ERR_ROTATION_SCHEDULE_NOT_SET = 132, /* No schedule of this type set for this session. */ + LTTNG_ERR_ROTATION_MULTIPLE_AFTER_STOP = 133, /* Already rotated once after a stop. */ + LTTNG_ERR_ROTATION_WRONG_VERSION = 134, /* Session rotation not supported by this kernel tracer version */ + LTTNG_ERR_NO_SESSION_OUTPUT = 135, /* Session has no output configured. */ + LTTNG_ERR_ROTATION_NOT_AVAILABLE_RELAY = 136, /* Rotate feature not available on the relay. */ + LTTNG_ERR_AGENT_TRACING_DISABLED = 137, /* Agent tracing disabled. */ + LTTNG_ERR_PROBE_LOCATION_INVAL = 138, /* Invalid userspace probe location. */ + LTTNG_ERR_ELF_PARSING = 139, /* ELF parsing error. */ + LTTNG_ERR_SDT_PROBE_SEMAPHORE = 140, /* SDT probe guarded by a semaphore. */ + LTTNG_ERR_ROTATION_FAIL_CONSUMER = 141, /* Rotation failure on consumer */ + LTTNG_ERR_ROTATE_RENAME_FAIL_CONSUMER = 142, /* Rotation rename failure on consumer */ + LTTNG_ERR_ROTATION_PENDING_LOCAL_FAIL_CONSUMER = 143, /* Rotation pending check (local) failure on consumer */ + LTTNG_ERR_ROTATION_PENDING_RELAY_FAIL_CONSUMER = 144, /* Rotation pending check (relay) failure on consumer */ + LTTNG_ERR_MKDIR_FAIL_CONSUMER = 145, /* mkdir failure on consumer */ + LTTNG_ERR_CHAN_NOT_FOUND = 146, /* Channel not found */ + LTTNG_ERR_SNAPSHOT_UNSUPPORTED = 147, /* Session configuration does not allow the use of snapshots */ + LTTNG_ERR_SESSION_NOT_EXIST = 148, /* The session does not exist on the session daemon */ + LTTNG_ERR_CREATE_TRACE_CHUNK_FAIL_CONSUMER = 149, /* trace chunk creation failure on consumer */ + LTTNG_ERR_CLOSE_TRACE_CHUNK_FAIL_CONSUMER = 150, /* trace chunk close failure on consumer */ + LTTNG_ERR_TRACE_CHUNK_EXISTS_FAIL_CONSUMER = 151, /* failed to query consumer for trace chunk existence */ + LTTNG_ERR_INVALID_PROTOCOL = 152, /* a protocol error occurred */ + LTTNG_ERR_FILE_CREATION_ERROR = 153, /* failed to create a file */ + LTTNG_ERR_TIMER_STOP_ERROR = 154, /* failed to stop timer. */ + LTTNG_ERR_ROTATION_NOT_AVAILABLE_KERNEL = 155, /* Rotation feature not supported by the kernel tracer. */ + LTTNG_ERR_CLEAR_RELAY_DISALLOWED = 156, /* LTTng-relayd peer does not allow lttng clear command. */ + LTTNG_ERR_CLEAR_NOT_AVAILABLE_RELAY = 157, /* Clearing a session is not supported by the relay daemon. */ + LTTNG_ERR_CLEAR_FAIL_CONSUMER = 158, /* Clear failure on consumer */ + LTTNG_ERR_ROTATION_AFTER_STOP_CLEAR = 159, /* Session was already cleared since it became inactive. */ + LTTNG_ERR_USER_NOT_FOUND = 160, /* User not found. */ + LTTNG_ERR_GROUP_NOT_FOUND = 161, /* Group not found. */ + LTTNG_ERR_UNSUPPORTED_DOMAIN = 162, /* Unsupported domain used. */ + LTTNG_ERR_PROCESS_ATTR_TRACKER_INVALID_TRACKING_POLICY = 163, /* Operation does not apply to the process attribute tracker's tracking policy */ + LTTNG_ERR_TRIGGER_GROUP_NOTIFICATION_FD = 164, /* Error initializing trigger group notification fd */ + LTTNG_ERR_TRIGGER_GROUP_ERROR_COUNTER = 165, /* Error initializing trigger group error counter */ + LTTNG_ERR_TRIGGER_GROUP_ERROR_COUNTER_FULL = 166, /* No bucket available in trigger group error counter */ - /* MUST be last element */ - LTTNG_ERR_NR, /* Last element */ + /* MUST be last element of the manually-assigned section of the enum */ + LTTNG_ERR_NR, + + /* Backward-compatibility assignments */ + LTTNG_ERR_PID_TRACKED = LTTNG_ERR_PROCESS_ATTR_EXISTS, /* Backward compat alias */ + LTTNG_ERR_PID_NOT_TRACKED = LTTNG_ERR_PROCESS_ATTR_MISSING, /* Backward compat alias */ }; +/* + * Return a human-readable error message for a LTTng error code. + * + * Parameter MUST be a negative value or else you'll get a generic message. + */ +extern const char *lttng_strerror(int code); + #ifdef __cplusplus } #endif