Page MenuHomePhabricator

labath (Pavel Labath)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 4 2013, 6:02 AM (311 w, 6 h)

Recent Activity

Today

labath created D62189: [Sanitizer] Add interceptor for wcsdup.
Tue, May 21, 5:34 AM · Restricted Project, Restricted Project
labath committed rGf33f1816785a: DWARF: Port debug_addr over to DWARFContext (authored by labath).
DWARF: Port debug_addr over to DWARFContext
Tue, May 21, 2:09 AM
labath committed rL361232: DWARF: Port debug_addr over to DWARFContext.
DWARF: Port debug_addr over to DWARFContext
Tue, May 21, 2:09 AM
labath committed rLLDB361232: DWARF: Port debug_addr over to DWARFContext.
DWARF: Port debug_addr over to DWARFContext
Tue, May 21, 2:09 AM
labath added a child revision for D62008: DWARF: Introduce DWARFTypeUnit class: D62178: DWARF: Don't compute address ranges for type units.
Tue, May 21, 1:19 AM
labath added a parent revision for D62178: DWARF: Don't compute address ranges for type units: D62008: DWARF: Introduce DWARFTypeUnit class.
Tue, May 21, 1:19 AM
labath created D62178: DWARF: Don't compute address ranges for type units.
Tue, May 21, 1:00 AM
labath added a comment to D62008: DWARF: Introduce DWARFTypeUnit class.

Thanks. We can always re-add the check if things take longer than expected.

Tue, May 21, 12:32 AM
labath committed rG03c4bf73eae6: DWARF: Introduce DWARFUnitHeader class (authored by labath).
DWARF: Introduce DWARFUnitHeader class
Tue, May 21, 12:21 AM
labath committed rLLDB361224: DWARF: Introduce DWARFUnitHeader class.
DWARF: Introduce DWARFUnitHeader class
Tue, May 21, 12:21 AM
labath committed rL361224: DWARF: Introduce DWARFUnitHeader class.
DWARF: Introduce DWARFUnitHeader class
Tue, May 21, 12:21 AM
labath closed D62073: DWARF: Introduce DWARFUnitHeader class.
Tue, May 21, 12:20 AM · Restricted Project

Yesterday

labath added a comment to D62089: Make ConnectionFileDescription work with all sockets.

It looks like diff now contains the changes from D61833 as well. It would be better to upload just the changes relative to the previous patch in the series, otherwise things get confusing about what is being changed where. It's kind of obvious here, but you can use the "parent revision" field in phabricator to indicate that one diff depends on another.

Mon, May 20, 11:51 PM · Restricted Project
labath added inline comments to D61833: Fix IPv6 support on lldb-server platform.
Mon, May 20, 11:48 PM · Restricted Project
labath accepted D61833: Fix IPv6 support on lldb-server platform.
Mon, May 20, 11:47 PM · Restricted Project
labath added a comment to D62159: LLGS: support 32-bit on 64-bit hosts.

BTW, there's no fundamental reason why a 64-bit lldb-server has to use instruction emulation for debugging arm32 binaries. Since all arm64 chips support hardware single stepping, we could just teach the arm32 native register context to issue PTRACE_SINGLESTEP commands when build in 64-bit mode, and increase debugging reliability while decreasing lldb-server size. (The same is probably also true for a 32-bit lldb-server running on a 64-bit kernel, but that's something that we would have to detect at runtime.)

Mon, May 20, 11:32 PM · Restricted Project
labath added a comment to D62089: Make ConnectionFileDescription work with all sockets.

GetRemoteConnectionURI sounds fine.

Mon, May 20, 7:10 AM · Restricted Project
labath added a comment to D61956: [CMake] Add first CMake cache files.

BTW, given that we recommend using ninja pretty much everywhere, you might want to include set(CMAKE_GENERATOR Ninja)

Mon, May 20, 7:05 AM · Restricted Project, Restricted Project
labath added a comment to D62008: DWARF: Introduce DWARFTypeUnit class.

Replying here as this is the relevant patch.

Mon, May 20, 6:32 AM
labath added a child revision for D62073: DWARF: Introduce DWARFUnitHeader class: D62008: DWARF: Introduce DWARFTypeUnit class.
Mon, May 20, 3:05 AM · Restricted Project
labath added a parent revision for D62008: DWARF: Introduce DWARFTypeUnit class: D62073: DWARF: Introduce DWARFUnitHeader class.
Mon, May 20, 3:05 AM
labath retitled D62008: DWARF: Introduce DWARFTypeUnit class from DWARF: Parse type units from the debug_types section to DWARF: Introduce DWARFTypeUnit class.
Mon, May 20, 3:02 AM
labath updated the diff for D62008: DWARF: Introduce DWARFTypeUnit class.
  • rebase on top of the DWARFUnitHeader patch
Mon, May 20, 3:01 AM
labath removed a parent revision for D62073: DWARF: Introduce DWARFUnitHeader class: D62008: DWARF: Introduce DWARFTypeUnit class.
Mon, May 20, 2:54 AM · Restricted Project
labath retitled D62073: DWARF: Introduce DWARFUnitHeader class from Introduce DWARFUnitHeader and use it to parse type units out of .debug_info to DWARF: Introduce DWARFUnitHeader class.
Mon, May 20, 2:54 AM · Restricted Project
labath removed a child revision for D62008: DWARF: Introduce DWARFTypeUnit class: D62073: DWARF: Introduce DWARFUnitHeader class.
Mon, May 20, 2:54 AM
labath updated the diff for D62073: DWARF: Introduce DWARFUnitHeader class.

Rebase so that this does not require any debug_types support.

Mon, May 20, 2:52 AM · Restricted Project
labath added a comment to D62073: DWARF: Introduce DWARFUnitHeader class.

Nice! FYI, we have a bot that runs the LLDB dotests against DWARF5 (the last stage http://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake-matrix/) to track the progress.

Mon, May 20, 2:51 AM · Restricted Project
labath committed rG0261b9498b89: DWARF: Port most of other sections over to DWARFContext (authored by labath).
DWARF: Port most of other sections over to DWARFContext
Mon, May 20, 1:37 AM
labath committed rL361127: DWARF: Port most of other sections over to DWARFContext.
DWARF: Port most of other sections over to DWARFContext
Mon, May 20, 1:37 AM
labath committed rLLDB361127: DWARF: Port most of other sections over to DWARFContext.
DWARF: Port most of other sections over to DWARFContext
Mon, May 20, 1:37 AM
labath committed rG64b846d58801: minidump: Remove checked-in files used for testing MemoryList handling (authored by labath).
minidump: Remove checked-in files used for testing MemoryList handling
Mon, May 20, 1:21 AM
labath committed rLLDB361126: minidump: Remove checked-in files used for testing MemoryList handling.
minidump: Remove checked-in files used for testing MemoryList handling
Mon, May 20, 1:21 AM
labath committed rL361126: minidump: Remove checked-in files used for testing MemoryList handling.
minidump: Remove checked-in files used for testing MemoryList handling
Mon, May 20, 1:21 AM
labath added a comment to D62089: Make ConnectionFileDescription work with all sockets.

The patch looks fine, modulo some inline nits. I am somewhat doubtful about the name of the new function though. When I first saw GetConnectURI, i thought this would be the URI used to connect to this socket, but in reality it is the URI of the other end (right?). In that case, I think GetRemoteURI would be better. Or maybe, borrowing from the BSD socket vocabulary, GetPeerURI ? WDYT?

Mon, May 20, 12:39 AM · Restricted Project
labath accepted D61687: Update Python tests for lldb-server on Windows.

Ok, let's give this a shot.

Mon, May 20, 12:39 AM · Restricted Project
labath added inline comments to D61833: Fix IPv6 support on lldb-server platform.
Mon, May 20, 12:18 AM · Restricted Project
labath added a comment to D59553: [LLD][ELF][DebugInfo] llvm-symbolizer shows incorrect source line info if --gc-sections used.

I don't see a problem with changing lldb's behavior to add special treatment for address zero. It's not the most ideal solution (that would be to avoid generating the debug info in the first place), but given that we have to accept inputs from other linkers too (which also implement this behavior), it's probably the best thing we can do now.

Mon, May 20, 12:12 AM · lld, Restricted Project

Fri, May 17

labath added a comment to D62073: DWARF: Introduce DWARFUnitHeader class.

The TypeUnit and CompileUnit classes are pretty much identical now, but that'll change once we start parsing type signatures and cross-referencing them.

Fri, May 17, 11:56 AM · Restricted Project
labath updated subscribers of D62073: DWARF: Introduce DWARFUnitHeader class.
Fri, May 17, 11:56 AM · Restricted Project
labath added a parent revision for D62073: DWARF: Introduce DWARFUnitHeader class: D62008: DWARF: Introduce DWARFTypeUnit class.
Fri, May 17, 11:56 AM · Restricted Project
labath added a child revision for D62008: DWARF: Introduce DWARFTypeUnit class: D62073: DWARF: Introduce DWARFUnitHeader class.
Fri, May 17, 11:56 AM
labath created D62073: DWARF: Introduce DWARFUnitHeader class.
Fri, May 17, 11:54 AM · Restricted Project
labath committed rG62370dd0e048: minidump: Use MemoryList parsing code from llvm (authored by labath).
minidump: Use MemoryList parsing code from llvm
Fri, May 17, 2:46 AM
labath committed rL361010: minidump: Use MemoryList parsing code from llvm.
minidump: Use MemoryList parsing code from llvm
Fri, May 17, 2:45 AM
labath committed rLLDB361010: minidump: Use MemoryList parsing code from llvm.
minidump: Use MemoryList parsing code from llvm
Fri, May 17, 2:45 AM
labath committed rGff9b4263f975: Make DWARFContext dwo-aware and port debug_info sections over (authored by labath).
Make DWARFContext dwo-aware and port debug_info sections over
Fri, May 17, 1:27 AM
labath committed rLLDB361000: Make DWARFContext dwo-aware and port debug_info sections over.
Make DWARFContext dwo-aware and port debug_info sections over
Fri, May 17, 1:27 AM
labath committed rL361000: Make DWARFContext dwo-aware and port debug_info sections over.
Make DWARFContext dwo-aware and port debug_info sections over
Fri, May 17, 1:27 AM
labath closed D62012: Make DWARFContext dwo-aware and port debug_info sections over.
Fri, May 17, 1:27 AM · Restricted Project
labath added inline comments to D62012: Make DWARFContext dwo-aware and port debug_info sections over.
Fri, May 17, 1:27 AM · Restricted Project
labath added a comment to D61952: [CMake] Stabilize install process for LLDB.framework.

Yeah, neither of the options look really appealing... Still, I can't escape the feeling that we are doing something wrong, as the installation process should not be that complicated. Or is the framework support in cmake just not good enough?

Fri, May 17, 1:11 AM · Restricted Project
labath accepted D61994: [CommandInterpreter] Refactor SourceInitFile.

I think this looks better than the original. Given that the only callers of SourceInitFile pass a constant value for the InitFileLocation argument, what I'd consider also doing is getting rid of the function and the enum, and making SourceInitFileHome/SourceInitFileCwd the main entry points.

Fri, May 17, 12:53 AM · Restricted Project, Restricted Project
labath added inline comments to D62021: Fix LLDB warnings when compiling with Clang 8.0.
Fri, May 17, 12:10 AM · Restricted Project

Thu, May 16

labath added inline comments to D61956: [CMake] Add first CMake cache files.
Thu, May 16, 11:10 AM · Restricted Project, Restricted Project
labath added a comment to D61952: [CMake] Stabilize install process for LLDB.framework.

Actually, why not make the copy operations PRE_BUILD actions of the test suite instead of POST_BUILD actions of their executables?

Thu, May 16, 9:37 AM · Restricted Project
labath abandoned D61482: [DWARF] Store compile unit IDs in the DIERef class.

Obsoleted by D61908.

Thu, May 16, 8:49 AM
labath accepted D60962: [NativePDB] Extend .pdb files search folders.

Adrian is on vacation now, but given that he was just waiting until you resolve my comments (which you have), I think we don't have to wait for him.

Thu, May 16, 8:49 AM · Restricted Project
labath added inline comments to D61853: [FuncUnwinders] Use "symbol file" unwind plans for unwinding.
Thu, May 16, 8:44 AM
labath committed rG2d29e16c3086: Minidump: Add support for the MemoryList stream (authored by labath).
Minidump: Add support for the MemoryList stream
Thu, May 16, 8:16 AM
labath committed rL360908: Minidump: Add support for the MemoryList stream.
Minidump: Add support for the MemoryList stream
Thu, May 16, 8:15 AM
labath closed D61885: Minidump: Add support for the MemoryList stream.
Thu, May 16, 8:15 AM · Restricted Project
labath added a comment to D61885: Minidump: Add support for the MemoryList stream.

Thanks. This is very straight-forward, so I don't think another set of eyes is needed (though I expect Greg is keeping at least one eye on this).

Thu, May 16, 8:14 AM · Restricted Project
labath created D62012: Make DWARFContext dwo-aware and port debug_info sections over.
Thu, May 16, 8:09 AM · Restricted Project
labath added a comment to D62011: Remove `SymbolFileDWARF *` when there is already `DWARFUnit *`.

Seems like a nice cleanup. Given that code code already assumed that the DWARFUnit can't be null, I'd just delete the null checks..

Thu, May 16, 8:08 AM · Restricted Project, Restricted Project
labath updated the diff for D62008: DWARF: Introduce DWARFTypeUnit class.
  • don't bail out if you see the debug_types section
  • rename a variable in the test to work around the old "Multiple internal symbols found for 'a'" problem
Thu, May 16, 8:00 AM
labath added a comment to D62008: DWARF: Introduce DWARFTypeUnit class.

On Fedora 29 x86_64 I get:

...
Thu, May 16, 7:54 AM
labath added a comment to D61956: [CMake] Add first CMake cache files.

Instead lldb could have something like GreenDragon-lldb-base.cmake that provides and explains reasonable default settings for a range of bots/environments. Actual build bot configs in zorg could then be handled the same way as downstream repos.

Thu, May 16, 7:50 AM · Restricted Project, Restricted Project
labath created D62008: DWARF: Introduce DWARFTypeUnit class.
Thu, May 16, 6:54 AM
labath added a comment to D53753: [Windows] Define generic arguments registers for Windows x64.

When we evaluate an expression, we jit a bunch of opcodes into the inferior memory and then have it execute them. For that to work, we need to allocate some memory in order to store the opcodes. We cannot use the general expression engine to jit that expression, as we would be back to square one, so we manually set the PC to the entry point of the mmap function, and set the argument values as if it was being called. Then we just let the inferior loose and have it allocate the memory for us and return it. For this to work, we need abi knowledge both to correctly set the arguments of mmap, and to retrieve its result.

Got it, thanks! There's a different approach on Windows: for now we just call VirtualAllocEx, which can allocate memory in another process. But it will not work for the remote debugging case.

Thu, May 16, 5:53 AM · Restricted Project, Restricted Project
labath added a comment to D53753: [Windows] Define generic arguments registers for Windows x64.

I'm not sure what exactly are the consequences of not using the correct ABI definition here. I think the case where the difference may start to become obvious is if you try to get argument values of a function for which you don't have debug info for.

It sounds strange to me... If we don't have symbols for a function, then we can't even know amount of its arguments, so how can we retrieve them? Also e.g. on Windows x86 both stdcall, ccall, thiscall and fastcall are commonly used, so it would be strange to use some "default" ABI...

Thu, May 16, 5:17 AM · Restricted Project, Restricted Project
labath committed rG1a8630ac2839: DWARFContext: Return empty data extractors instead of null pointers (authored by labath).
DWARFContext: Return empty data extractors instead of null pointers
Thu, May 16, 4:17 AM
labath committed rL360874: DWARFContext: Return empty data extractors instead of null pointers.
DWARFContext: Return empty data extractors instead of null pointers
Thu, May 16, 4:16 AM
labath committed rLLDB360874: DWARFContext: Return empty data extractors instead of null pointers.
DWARFContext: Return empty data extractors instead of null pointers
Thu, May 16, 4:16 AM
labath closed D61942: DWARFContext: Return empty data extractors instead of null pointers.
Thu, May 16, 4:16 AM · Restricted Project
labath added a comment to D60153: Re-enable most lldb-vscode tests on Linux..

BTW, it looks like the attach test is still flaky http://lab.llvm.org:8014/builders/lldb-x86_64-debian/builds/1541/steps/test/logs/stdio, though it looks like the failures are super-rare (this is the first time I've seen it do that). Judging by the error message alone, it's not clear to me whether this is due to the sleep being too small, or if there's something else going on.

Thu, May 16, 4:14 AM · Restricted Project, Restricted Project
labath committed rGf4014e116ed8: DWARF: Add ability to reference debug info coming from multiple sections (authored by labath).
DWARF: Add ability to reference debug info coming from multiple sections
Thu, May 16, 4:06 AM
labath committed rLLDB360872: DWARF: Add ability to reference debug info coming from multiple sections.
DWARF: Add ability to reference debug info coming from multiple sections
Thu, May 16, 4:06 AM
labath committed rL360872: DWARF: Add ability to reference debug info coming from multiple sections.
DWARF: Add ability to reference debug info coming from multiple sections
Thu, May 16, 4:05 AM
labath closed D61908: DWARF: Add ability to reference debug info coming from multiple sections.
Thu, May 16, 4:05 AM · Restricted Project
labath added a comment to D61687: Update Python tests for lldb-server on Windows.

Thanks for explaining. I think this is good to go, sans the merging of the two tests I requested, and the comment fix that @clayborg noticed.

Thu, May 16, 3:00 AM · Restricted Project
labath added a comment to D53753: [Windows] Define generic arguments registers for Windows x64.

@lanza Hello! AFAIU, these values have nothing to do with the Microsoft x64 calling convention. They are used by ABISysV_x86_64, which specifies ABI for working with code injectable into a process being debugged. It requires six arguments to be passed through registers (see GetArgumentValues).

If I understand right, SymbolFile retrieves the information about arguments location on the stack, so there's no need to support different calling conventions in LLDB for this purpose. Please, correct me if I'm wrong.

Thu, May 16, 2:34 AM · Restricted Project, Restricted Project
labath added a comment to D61952: [CMake] Stabilize install process for LLDB.framework.

I'm not very familiar with frameworks and complexities involved in creating them, but the fact that we need to delete stuff from the build tree in order to install properly makes me think that there is something fishy going on. Is there no way to arrange things so that this can be avoided? For instance, what if we set the build output paths to be separate and disjoint locations for each target. Then use a separate target, or some POST_BUILD commands to copy/symlink the files to construct an build-tree framework, and have the install targets create the install-tree framework from the original build output paths?

Thu, May 16, 2:14 AM · Restricted Project
labath added a comment to D61994: [CommandInterpreter] Refactor SourceInitFile.

I think this is a bit more readable. I've included some suggestions which I think could make it even better.

Thu, May 16, 2:01 AM · Restricted Project, Restricted Project
labath added a comment to D61956: [CMake] Add first CMake cache files.

I wouldn't want to over-proliferate these, but in general I think this is a good idea. What I would find particularly useful is if we checked in the configurations used by all the bots in here, as that would make it easier to figure out what's going on if one of them breaks and the reason is not obvious...

Thu, May 16, 1:28 AM · Restricted Project, Restricted Project

Wed, May 15

labath created D61942: DWARFContext: Return empty data extractors instead of null pointers.
Wed, May 15, 6:29 AM · Restricted Project
labath updated the diff for D61885: Minidump: Add support for the MemoryList stream.

Address review comments.

Wed, May 15, 2:50 AM · Restricted Project
labath added inline comments to D61885: Minidump: Add support for the MemoryList stream.
Wed, May 15, 2:50 AM · Restricted Project
labath added inline comments to D61687: Update Python tests for lldb-server on Windows.
Wed, May 15, 2:25 AM · Restricted Project
labath added a comment to D61713: [lldb] build.py: fix behavior when passing --compiler=/path/to/compiler.

I think we can just add --mode=link to the test to avoid it trying to mess with the linker (since that is not important here anyway).

Did you mean --mode=compile? I can confirm it fixes the test. Should I commit it?

Wed, May 15, 2:16 AM · Restricted Project, Restricted Project
labath accepted D61686: Enable lldb-server on Windows.
Wed, May 15, 2:08 AM · Restricted Project
labath added a comment to D61713: [lldb] build.py: fix behavior when passing --compiler=/path/to/compiler.
Wed, May 15, 2:05 AM · Restricted Project, Restricted Project
labath added a comment to D61502: Permit cross-CU references.

I like this patch in a lot of ways, because it makes the code cleaner, and prepares us for DWARF5, which can reference entries in other files in a lot of interesting ways.

Wed, May 15, 1:57 AM · Restricted Project, Restricted Project
labath added inline comments to D61908: DWARF: Add ability to reference debug info coming from multiple sections.
Wed, May 15, 1:27 AM · Restricted Project
labath updated the diff for D61908: DWARF: Add ability to reference debug info coming from multiple sections.
  • use enum class for the section type
  • put DIERef as a member of HashedNameToDie::DIEInfo
Wed, May 15, 1:27 AM · Restricted Project
labath committed rG041f40e5daf3: DWARF: s/CompileUnit/Unit/ in DWARFFormValue (authored by labath).
DWARF: s/CompileUnit/Unit/ in DWARFFormValue
Wed, May 15, 12:45 AM
labath committed rL360754: DWARF: s/CompileUnit/Unit/ in DWARFFormValue.
DWARF: s/CompileUnit/Unit/ in DWARFFormValue
Wed, May 15, 12:45 AM
labath committed rLLDB360754: DWARF: s/CompileUnit/Unit/ in DWARFFormValue.
DWARF: s/CompileUnit/Unit/ in DWARFFormValue
Wed, May 15, 12:45 AM
labath added a comment to D61921: [Target] Generalize language-specific behavior in ThreadPlanStepThrough.

If this iteration is going to be used a lot, I'd recommend taking a bit of time to implement an iterator abstraction over the language runtimes. It takes a bit longer to set up, but I hope we can all agree that for (runtime: process->GetLanguageRuntimes()) runtime->foo(); is more readable than process->ForEachLanguageRuntime([] (runtime) { runtime->foo(); }). This is particularly true if you need some sort of a control flow construct (continue, break, return) in the loop "body".

Wed, May 15, 12:24 AM

Tue, May 14

labath created D61908: DWARF: Add ability to reference debug info coming from multiple sections.
Tue, May 14, 8:41 AM · Restricted Project