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"
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to