Print this page
        
*** 742,803 ****
  Pname_to_loadobj(struct ps_prochandle *P, const char *name)
  {
          return (Plmid_to_loadobj(P, PR_LMID_EVERY, name));
  }
  
- /*
-  * We've been given a file_info_t which doesn't have any CTF. However, it may
-  * have information that's in a format that we could convert if on the fly.
-  * We'll first try to convert the alternate debug file, if present, and then
-  * move onto the default file. The reason we prefer the alternate debug file is
-  * that if both exist, then it likely has any usable debugging information.
-  */
- static ctf_file_t *
- Pconvert_file_ctf(file_info_t *fptr)
- {
-         int err;
-         ctf_file_t *fp;
-         char errmsg[1024];
- 
-         /*
-          * Provide an opt in.
-          */
-         if (getenv("LIBPROC_CTFCONVERT") == NULL)
-                 return (NULL);
- 
-         /*
-          * If we've already attempted to call this, then that's it. No reason to
-          * pretend we'll be more successful again another time.
-          */
-         if (fptr->file_cvt == B_TRUE)
-                 return (NULL);
-         fptr->file_cvt = B_TRUE;
- 
-         fp = NULL;
-         if (fptr->file_dbgelf != NULL) {
-                 fp = ctf_elfconvert(fptr->file_fd, fptr->file_dbgelf, NULL, 1,
-                     0, &err, errmsg, sizeof (errmsg));
-                 if (fp == NULL) {
-                         dprintf("failed to convert %s: %s\n", fptr->file_pname,
-                             err == ECTF_CONVBKERR ? errmsg : ctf_errmsg(err));
-                 }
-         }
-         if (fp == NULL) {
-                 fp = ctf_elfconvert(fptr->file_fd, fptr->file_elf, NULL, 1,
-                     0, &err, errmsg, sizeof (errmsg));
-                 if (fp == NULL) {
-                         dprintf("failed to convert %s: %s\n", fptr->file_pname,
-                             err == ECTF_CONVBKERR ? errmsg : ctf_errmsg(err));
-                 }
-         }
-         if (fp != NULL) {
-                 fptr->file_ctfp = fp;
-         }
- 
-         return (NULL);
- }
- 
  ctf_file_t *
  Pbuild_file_ctf(struct ps_prochandle *P, file_info_t *fptr)
  {
          ctf_sect_t ctdata, symtab, strtab;
          sym_tbl_t *symp;
--- 742,751 ----
*** 806,818 ****
          if (fptr->file_ctfp != NULL)
                  return (fptr->file_ctfp);
  
          Pbuild_file_symtab(P, fptr);
  
!         if (fptr->file_ctf_size == 0) {
!                 return (Pconvert_file_ctf(fptr));
!         }
  
          symp = fptr->file_ctf_dyn ? &fptr->file_dynsym : &fptr->file_symtab;
          if (symp->sym_data_pri == NULL)
                  return (NULL);
  
--- 754,765 ----
          if (fptr->file_ctfp != NULL)
                  return (fptr->file_ctfp);
  
          Pbuild_file_symtab(P, fptr);
  
!         if (fptr->file_ctf_size == 0)
!                 return (NULL);
  
          symp = fptr->file_ctf_dyn ? &fptr->file_dynsym : &fptr->file_symtab;
          if (symp->sym_data_pri == NULL)
                  return (NULL);