linux-user/strace.c: Correct errno printing for mmap etc
Correct the printing of errnos for syscalls which are handled via print_syscall_ret_addr (mmap, mmap2, brk, shmat): errnos are returned as negative returned values at this level, not via the host 'errno' variable. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
This commit is contained in:
		
							parent
							
								
									962b289ef3
								
							
						
					
					
						commit
						2a7e12455c
					
				| @ -1,5 +1,4 @@ | ||||
| #include <stdio.h> | ||||
| #include <errno.h> | ||||
| #include <sys/ipc.h> | ||||
| #include <sys/msg.h> | ||||
| #include <sys/sem.h> | ||||
| @ -286,11 +285,11 @@ print_syscall_ret_addr(const struct syscallname *name, abi_long ret) | ||||
| { | ||||
|     char *errstr = NULL; | ||||
| 
 | ||||
|     if (ret == -1) { | ||||
|         errstr = target_strerror(errno); | ||||
|     if (ret < 0) { | ||||
|         errstr = target_strerror(-ret); | ||||
|     } | ||||
|     if ((ret == -1) && errstr) { | ||||
|         gemu_log(" = -1 errno=%d (%s)\n", errno, errstr); | ||||
|     if (errstr) { | ||||
|         gemu_log(" = -1 errno=%d (%s)\n", (int)-ret, errstr); | ||||
|     } else { | ||||
|         gemu_log(" = 0x" TARGET_ABI_FMT_lx "\n", ret); | ||||
|     } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Peter Maydell
						Peter Maydell