Debugging
POSIX errors
Some locations use POSIX-STYLE error codes, which are positive numbers. The constant names
are the same as Linux errno
values, but some of the numeric values are different. The
constants are defined in newlib
which is the standard C/C++ library that Device OS uses.
For example, you might see the following debugging message in code that uses TCPClient, where 113 is ECONNABORTED
(connection aborted).
0000182000 [wiring] ERROR: recv error = 113
Name | Value | Description |
---|---|---|
EPERM |
1 | Not super-user |
ENOENT |
2 | No such file or directory |
ESRCH |
3 | No such process |
EINTR |
4 | Interrupted system call |
EIO |
5 | I/O error |
ENXIO |
6 | No such device or address |
E2BIG |
7 | Arg list too long |
ENOEXEC |
8 | Exec format error |
EBADF |
9 | Bad file number |
ECHILD |
10 | No children |
EAGAIN |
11 | No more processes |
EWOULDBLOCK |
11 | Operation would block |
ENOMEM |
12 | Not enough core |
EACCES |
13 | Permission denied |
EFAULT |
14 | Bad address |
ENOTBLK |
15 | Block device required |
EBUSY |
16 | Mount device busy |
EEXIST |
17 | File exists |
EXDEV |
18 | Cross-device link |
ENODEV |
19 | No such device |
ENOTDIR |
20 | Not a directory |
EISDIR |
21 | Is a directory |
EINVAL |
22 | Invalid argument |
ENFILE |
23 | Too many open files in system |
EMFILE |
24 | Too many open files |
ENOTTY |
25 | Not a typewriter |
ETXTBSY |
26 | Text file busy |
EFBIG |
27 | File too large |
ENOSPC |
28 | No space left on device |
ESPIPE |
29 | Illegal seek |
EROFS |
30 | Read only file system |
EMLINK |
31 | Too many links |
EPIPE |
32 | Broken pipe |
EDOM |
33 | Math arg out of domain of func |
ERANGE |
34 | Math result not representable |
ENOMSG |
35 | No message of desired type |
EIDRM |
36 | Identifier removed |
ECHRNG |
37 | Channel number out of range |
EL2NSYNC |
38 | Level 2 not synchronized |
EL3HLT |
39 | Level 3 halted |
EL3RST |
40 | Level 3 reset |
ELNRNG |
41 | Link number out of range |
EUNATCH |
42 | Protocol driver not attached |
ENOCSI |
43 | No CSI structure available |
EL2HLT |
44 | Level 2 halted |
EDEADLK |
45 | Deadlock condition |
ENOLCK |
46 | No record locks available |
EBADE |
50 | Invalid exchange |
EBADR |
51 | Invalid request descriptor |
EXFULL |
52 | Exchange full |
ENOANO |
53 | No anode |
EBADRQC |
54 | Invalid request code |
EBADSLT |
55 | Invalid slot |
EDEADLOCK |
56 | File locking deadlock error |
EBFONT |
57 | Bad font file fmt |
ENOSTR |
60 | Device not a stream |
ENODATA |
61 | No data (for no delay io) |
ETIME |
62 | Timer expired |
ENOSR |
63 | Out of streams resources |
ENONET |
64 | Machine is not on the network |
ENOPKG |
65 | Package not installed |
EREMOTE |
66 | The object is remote |
ENOLINK |
67 | The link has been severed |
EADV |
68 | Advertise error |
ESRMNT |
69 | Srmount error |
ECOMM |
70 | Communication error on send |
EPROTO |
71 | Protocol error |
EMULTIHOP |
74 | Multihop attempted |
ELBIN |
75 | Inode is remote (not really error) |
EDOTDOT |
76 | Cross mount point (not really error) |
EBADMSG |
77 | Trying to read unreadable message |
EFTYPE |
79 | Inappropriate file type or format |
ENOTUNIQ |
80 | Given log. name not unique |
EBADFD |
81 | f.d. invalid for this operation |
EREMCHG |
82 | Remote address changed |
ELIBACC |
83 | Can't access a needed shared lib |
ELIBBAD |
84 | Accessing a corrupted shared lib |
ELIBSCN |
85 | .lib section in a.out corrupted |
ELIBMAX |
86 | Attempting to link in too many libs |
ELIBEXEC |
87 | Attempting to exec a shared library |
ENOSYS |
88 | Function not implemented |
ENOTEMPTY |
90 | Directory not empty |
ENAMETOOLONG |
91 | File or path name too long |
ELOOP |
92 | Too many symbolic links |
EOPNOTSUPP |
95 | Operation not supported on transport endpoint |
EPFNOSUPPORT |
96 | Protocol family not supported |
ECONNRESET |
104 | Connection reset by peer |
ENOBUFS |
105 | No buffer space available |
EAFNOSUPPORT |
106 | Address family not supported by protocol family |
EPROTOTYPE |
107 | Protocol wrong type for socket |
ENOTSOCK |
108 | Socket operation on non-socket |
ENOPROTOOPT |
109 | Protocol not available |
ESHUTDOWN |
110 | Can't send after socket shutdown |
ECONNREFUSED |
111 | Connection refused |
EADDRINUSE |
112 | Address already in use |
ECONNABORTED |
113 | Connection aborted |
ENETUNREACH |
114 | Network is unreachable |
ENETDOWN |
115 | Network interface is not configured |
ETIMEDOUT |
116 | Connection timed out |
EHOSTDOWN |
117 | Host is down |
EHOSTUNREACH |
118 | Host is unreachable |
EINPROGRESS |
119 | Connection already in progress |
EALREADY |
120 | Socket already connected |
EDESTADDRREQ |
121 | Destination address required |
EMSGSIZE |
122 | Message too long |
EPROTONOSUPPORT |
123 | Unknown protocol |
ESOCKTNOSUPPORT |
124 | Socket type not supported |
EADDRNOTAVAIL |
125 | Address not available |
ENETRESET |
126 | |
EISCONN |
127 | Socket is already connected |
ENOTCONN |
128 | Socket is not connected |
ETOOMANYREFS |
129 | |
EPROCLIM |
130 | |
EUSERS |
131 | |
EDQUOT |
132 | |
ESTALE |
133 | |
ENOTSUP |
134 | Not supported |
ENOMEDIUM |
135 | No medium (in tape drive) |
EILSEQ |
138 | |
EOVERFLOW |
139 | Value too large for defined data type |
ECANCELED |
140 | Operation canceled |
ENOTRECOVERABLE |
141 | State not recoverable |
EOWNERDEAD |
142 | Previous owner died |
ESTRPIPE |
143 | Streams pipe error |