[Lldb-commits] [lldb] r213294 - In Process::LoadImage, if dlopen returns 0x0 fetch the error with dlerror and report
jingham at apple.com
jingham at apple.com
Thu Jul 17 15:03:01 PDT 2014
My bad, fixed in:
r213314
Jim
> On Jul 17, 2014, at 2:41 PM, Zachary Turner <zturner at google.com> wrote:
>
> Hi Jim, this seems to have broken the build. Doesn't seem Windows-specific either. Was there a piece missing from your checkin?
>
> Here's a patch that (maybe?) addresses this, but I'm not familiar with this codepath so I'm not sure how to exercise it and test.
>
> If I don't hear back in an hour or so I may see about reverting it, since I'm not sure if the attached fix is correct.
>
>
> On Thu, Jul 17, 2014 at 11:55 AM, Jim Ingham <jingham at apple.com> wrote:
> Author: jingham
> Date: Thu Jul 17 13:55:25 2014
> New Revision: 213294
>
> URL: http://llvm.org/viewvc/llvm-project?rev=213294&view=rev
> Log:
> In Process::LoadImage, if dlopen returns 0x0 fetch the error with dlerror and report
> that in the returned Error.
>
> Modified:
> lldb/trunk/source/Target/Process.cpp
>
> Modified: lldb/trunk/source/Target/Process.cpp
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Process.cpp?rev=213294&r1=213293&r2=213294&view=diff
> ==============================================================================
> --- lldb/trunk/source/Target/Process.cpp (original)
> +++ lldb/trunk/source/Target/Process.cpp Thu Jul 17 13:55:25 2014
> @@ -1550,6 +1550,31 @@ Process::LoadImage (const FileSpec &imag
> m_image_tokens.push_back (image_ptr);
> return image_token;
> }
> + else if (image_ptr == 0)
> + {
> + prefix = "extern \"C\" const char *dlerror(void);\n";
> + expr.Clear();
> + expr.PutCString("dlerror()");
> + ClangUserExpression::Evaluate (exe_ctx,
> + expr_options,
> + expr.GetData(),
> + prefix,
> + result_valobj_sp,
> + expr_error);
> + if (result_valobj_sp && error.Success())
> + {
> + if (result_valobj_sp->IsCStringContainer(true))
> + {
> + lldb::DataBufferSP buf_sp (new DataBufferHeap());
> + size_t num_chars = result_valobj_sp->ReadPointedString (buf_sp, error);
> + if (error.Success() && num_chars > 0)
> + {
> + error.Clear();
> + error.SetErrorStringWithFormat("dlopen failed: %s", buf_sp->GetBytes());
> + }
> + }
> + }
> + }
> }
> }
> }
>
>
> _______________________________________________
> lldb-commits mailing list
> lldb-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
>
> <error.diff>
More information about the lldb-commits
mailing list