[Lldb-commits] [PATCH] D12245: Implement basic DidAttach and DidLaunch for DynamicLoaderWindowsDYLD.

Zachary Turner via lldb-commits lldb-commits at lists.llvm.org
Fri Aug 21 17:00:22 PDT 2015


Hi Stephane, I'm sorry but I had to revert this change.  When I tested it
locally, I did it without running the full test suite, but when I did run
the full test suite it showed about 15-20 new test failures.  I should have
caught this earlier by running the full test suite, so sorry about that.

I'm not 100% sure what the cause of the failure is, but I suspect it could
be related to DynamicLoaderWindows adding modules to the list *and*
ProcessWindows adding modules to the list as well.

If you need help setting up a Windows machine to test this on let me know.
Unfortunately it's not that trivial, but luckily once you get it set up and
correctly configured it becomes pretty easy to keep it going smoothly.

Let me know if you need more information.

On Fri, Aug 21, 2015 at 12:29 PM Stephane Sezer <sas at cd80.net> wrote:

> This revision was automatically updated to reflect the committed changes.
> Closed by commit rL245725: Implement basic DidAttach and DidLaunch for
> DynamicLoaderWindowsDYLD. (authored by sas).
>
> Changed prior to commit:
>   http://reviews.llvm.org/D12245?vs=32842&id=32853#toc
>
> Repository:
>   rL LLVM
>
> http://reviews.llvm.org/D12245
>
> Files:
>
> lldb/trunk/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp
>
> Index:
> lldb/trunk/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp
> ===================================================================
> ---
> lldb/trunk/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp
> +++
> lldb/trunk/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp
> @@ -9,6 +9,7 @@
>
>  #include "DynamicLoaderWindowsDYLD.h"
>
> +#include "lldb/Core/Log.h"
>  #include "lldb/Core/PluginManager.h"
>  #include "lldb/Target/Process.h"
>  #include "lldb/Target/Target.h"
> @@ -72,11 +73,38 @@
>  void
>  DynamicLoaderWindowsDYLD::DidAttach()
>  {
> +    Log *log(GetLogIfAnyCategoriesSet(LIBLLDB_LOG_DYNAMIC_LOADER));
> +    if (log)
> +        log->Printf("DynamicLoaderWindowsDYLD::%s()", __FUNCTION__);
> +
> +    DidLaunch();
> +
> +    m_process->LoadModules();
>  }
>
>  void
>  DynamicLoaderWindowsDYLD::DidLaunch()
>  {
> +    Log *log(GetLogIfAnyCategoriesSet(LIBLLDB_LOG_DYNAMIC_LOADER));
> +    if (log)
> +        log->Printf("DynamicLoaderWindowsDYLD::%s()", __FUNCTION__);
> +
> +    ModuleSP executable = GetTargetExecutable();
> +
> +    if (!executable.get())
> +        return;
> +
> +    ModuleList module_list;
> +    module_list.Append(executable);
> +    // FIXME: We probably should not always use 0 as the load address
> +    // here. Testing showed that when debugging a process that we start
> +    // ourselves, there's no randomization of the load address of the
> +    // main module, therefore an offset of 0 will be valid.
> +    // If we attach to an already running process, this is probably
> +    // going to be wrong and we'll have to get the load address somehow.
> +    UpdateLoadedSections(executable, LLDB_INVALID_ADDRESS, 0);
> +
> +    m_process->GetTarget().ModulesDidLoad(module_list);
>  }
>
>  Error
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20150822/8b2a93e5/attachment.html>


More information about the lldb-commits mailing list