svn commit: r312984 - in head: lib/libsysdecode libexec/rtld-elf

Peter Jeremy peterj at FreeBSD.org
Mon Jan 30 08:38:34 UTC 2017


Author: peterj
Date: Mon Jan 30 08:38:32 2017
New Revision: 312984
URL: https://svnweb.freebsd.org/changeset/base/312984

Log:
  Extend LD_UTRACE by also generating utrace(2) log events for runtime linker
  errors.
  
  Reviewed by:	kib, jhb
  Approved by:	jhb(mentor)
  MFC after:	1 week
  Differential Revision:	 D9347

Modified:
  head/lib/libsysdecode/utrace.c
  head/libexec/rtld-elf/rtld.c
  head/libexec/rtld-elf/rtld_utrace.h

Modified: head/lib/libsysdecode/utrace.c
==============================================================================
--- head/lib/libsysdecode/utrace.c	Mon Jan 30 08:35:15 2017	(r312983)
+++ head/lib/libsysdecode/utrace.c	Mon Jan 30 08:38:32 2017	(r312984)
@@ -124,6 +124,10 @@ print_utrace_rtld(FILE *fp, void *p)
 		fprintf(fp, "RTLD: %p = dlsym(%p, %s)", ut->mapbase, ut->handle,
 		    ut->name);
 		break;
+	case UTRACE_RTLD_ERROR:
+		fprintf(fp, "RTLD: error: %s\n", ut->name);
+		break;
+
 	default:
 		return (0);
 	}

Modified: head/libexec/rtld-elf/rtld.c
==============================================================================
--- head/libexec/rtld-elf/rtld.c	Mon Jan 30 08:35:15 2017	(r312983)
+++ head/libexec/rtld-elf/rtld.c	Mon Jan 30 08:38:32 2017	(r312984)
@@ -764,6 +764,7 @@ _rtld_error(const char *fmt, ...)
     rtld_vsnprintf(buf, sizeof buf, fmt, ap);
     error_message = buf;
     va_end(ap);
+    LD_UTRACE(UTRACE_RTLD_ERROR, NULL, NULL, 0, 0, error_message);
 }
 
 /*

Modified: head/libexec/rtld-elf/rtld_utrace.h
==============================================================================
--- head/libexec/rtld-elf/rtld_utrace.h	Mon Jan 30 08:35:15 2017	(r312983)
+++ head/libexec/rtld-elf/rtld_utrace.h	Mon Jan 30 08:38:32 2017	(r312984)
@@ -45,6 +45,7 @@
 #define	UTRACE_FINI_CALL		10
 #define	UTRACE_DLSYM_START		11
 #define	UTRACE_DLSYM_STOP		12
+#define	UTRACE_RTLD_ERROR		13
 
 #define	RTLD_UTRACE_SIG_SZ		4
 #define	RTLD_UTRACE_SIG			"RTLD"


More information about the svn-src-all mailing list