[Lldb-commits] [PATCH] D66638: Unwind: Add a stack scanning mechanism to support win32 unwinding

Greg Clayton via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Mon Sep 23 10:56:36 PDT 2019

clayborg added a comment.

In D66638#1679195 <https://reviews.llvm.org/D66638#1679195>, @labath wrote:

> Thanks for the review and sorry for the delay (I was OOO). The idea to use `Process::GetLoadAddressPermissions` makes sense, both from consistency and correctness perspectives. Unfortunately it does not work "out of the box" because minidump core files (my primary use case for this) do not currently provide enough information through the memory region info api. It tries pretty hard to achieve that, but in the case of regular (not "full memory dumps") windows minidump, all we have is the "MemoryList" stream, which only contains a couple of memory regions, and it does not include the areas covered by loaded modules (which is where PCs should point). If this is to work, we'd need to extend this memory parsing code to also take into account the module memory ranges (from the ModuleList stream).
> @clayborg, you're the one who wrote the memory region parsing code IIRC. Does that sound OK to you ?

I am not sure if we can infer anything about permissions from the module ranges. I believe this range contains everything (.text, .data, .bss, etc), so it has a mixture of permissions?

If we can find a way to use the module base of image, we should only parse the module ranges if the /proc/<pid>/maps is not in a minidump file as that is the best source for mapped ranges.

> The disassembling idea also sounds interesting, but I am afraid it's going to be very useful for my main use case. The main use case for breakpad symbol files is for the cases where one does not have the original object file (and when one has the original object file, it probably also has proper debug and unwind info). It _might_ be more interesting once we get around to PECOFF unwinding, as it also uses raSearch (on i386), and one is more likely to have the original file to disassemble there, but even then, I'd first check what other windows debuggers do, as might be best to just follow their lead. So, for now, I'd like to skip the disassembling logic.



More information about the lldb-commits mailing list