labath (Pavel Labath)
User

Projects

User does not belong to any projects.
User Since
Jun 4 2013, 6:02 AM (198 w, 2 d)

Recent Activity

Today

labath added a comment to D30984: Centralize libc++ test skipping logic.

Does anyone object to me landing this? I am going to be careful and wait for the change to trickle through CI before submitting any followup changes.

Thu, Mar 23, 9:37 AM
labath accepted D30457: [LLDB][MIPS] Core Dump Support.

Thank you.

Thu, Mar 23, 9:26 AM
labath accepted D31280: [LLDB][MIPS] Fix Core file Architecture and OS information.

Ah, that explains it, thanks.

Thu, Mar 23, 9:25 AM
labath added a comment to D31280: [LLDB][MIPS] Fix Core file Architecture and OS information.

Thank you for that.

Thu, Mar 23, 8:58 AM
labath added inline comments to D31280: [LLDB][MIPS] Fix Core file Architecture and OS information.
Thu, Mar 23, 7:25 AM
labath added inline comments to D31280: [LLDB][MIPS] Fix Core file Architecture and OS information.
Thu, Mar 23, 4:28 AM
labath added a comment to D31280: [LLDB][MIPS] Fix Core file Architecture and OS information.

BTW, thank you for adding the test. It's not obvious from the patch: how big are the core files?

Thu, Mar 23, 3:54 AM
labath added inline comments to D31280: [LLDB][MIPS] Fix Core file Architecture and OS information.
Thu, Mar 23, 3:52 AM
labath accepted D31279: Fix warnings from clang build on macOS..
Thu, Mar 23, 2:13 AM

Yesterday

labath committed rL298509: Revert "Delete the remainder of platform specific code in FileSpec.".
Revert "Delete the remainder of platform specific code in FileSpec."
Wed, Mar 22, 7:17 AM
labath accepted D31231: Reuse appropriate Launch and Attach on NetBSD.
Wed, Mar 22, 6:59 AM · Restricted Project

Tue, Mar 21

labath accepted D31192: Create instance of DynamicLoaderPOSIXDYLD on NetBSD.

I think you should group these "add netbsd to a list" type of changes into single diff. There's not point in reviewing each separately.

Tue, Mar 21, 9:43 AM · Restricted Project
labath accepted D31138: Add stub for PluginProcessNetBSD.

Heh... I did not expect it would get this small, but ok. :)

Tue, Mar 21, 9:20 AM · Restricted Project
labath accepted D31191: Enable ProcessPOSIXLog on NetBSD.
Tue, Mar 21, 9:18 AM · Restricted Project
labath committed rL298375: Replace std::ofstream with llvm::raw_fd_ostream.
Replace std::ofstream with llvm::raw_fd_ostream
Tue, Mar 21, 7:02 AM
labath closed D31079: Replace std::ofstream with llvm::raw_fd_ostream by committing rL298375: Replace std::ofstream with llvm::raw_fd_ostream.
Tue, Mar 21, 7:02 AM
labath committed rL298374: Remove ProcFileReader.
Remove ProcFileReader
Tue, Mar 21, 7:02 AM
labath added a comment to D31146: Enable AUXV and QPassSignals in gdb-remote for NetBSD.

I'm still evaluating whether to implement on the kernel side PT_SET_SIGPASS/PT_GET_SIGPASS. Some software like floating point can use it heavily.

Tue, Mar 21, 5:33 AM · Restricted Project
labath added a comment to D31129: Remove remaining platform specific code from FileSpec.

See what you think about this. I've created a folder called Mocks under Utility, and created a new target out of it. UtilityTests links against it, and so does InterpreterTests. To do this I had to add the lldb project root as an include directory, this way you can write #include "unittests/Utility/Mocks/MockTildeExpressionResolver.h". Another possibility would be to create lldb/unittests/Mocks/Mocks/Utility, and then add lldb/unittests/Mocks as an include folder. This way you could write #include "Mocks/Utility/MockTildeExpressionResolver.h". I don't have a strong preference either way.

I explicitly chose NOT to make one single target for all mocks (although there is only one right now obviously), because then you would have UtilityTests bringing in mocks from projects it doesn't depend on, and thus it would link against those projects as well, breaking the library layering.

Tue, Mar 21, 5:22 AM
labath accepted D31146: Enable AUXV and QPassSignals in gdb-remote for NetBSD.

At one point we will need to come up with a better way to control these features.

Tue, Mar 21, 4:56 AM · Restricted Project
labath added a comment to D31138: Add stub for PluginProcessNetBSD.

I like the idea of adding boilerplate first, so that we can than better focus on the important stuff later. However, I think you've have gone a bit too far with it -- you introduce a lot of functions I am pretty sure will not be necessary for your case, or that should be handled differently (software single stepping stuff, handling of linux thread stopping, ...).

Tue, Mar 21, 4:53 AM · Restricted Project
labath accepted D31132: Add NetBSD case in Entry::Type::ThreadID.
Tue, Mar 21, 4:07 AM · Restricted Project

Mon, Mar 20

labath committed rL298261: Fix remote test suite directory creation.
Fix remote test suite directory creation
Mon, Mar 20, 9:19 AM
labath added inline comments to D31129: Remove remaining platform specific code from FileSpec.
Mon, Mar 20, 4:02 AM
labath added a comment to D31086: Remove FileSystem::MakeDirectory.
In D31086#704518, @sas wrote:

The second behavioral change seems good but the first thing you described is a bit odd. Creating folders with 770 does not seem like a common behavior, and 700 or 755 is usually more standard.

Mon, Mar 20, 3:57 AM
labath accepted D31111: Delete various FileSystem functions that are either dead or have direct LLVM equivalents..

cool

Mon, Mar 20, 3:52 AM
labath accepted D31108: Delete LLDB code for MD5'ing a file. Use LLVM instead.

cool

Mon, Mar 20, 3:45 AM
labath added a comment to D31131: [LLDB] OpenBSD support.

Looks like a great start. If you want to continue and get live process debugging working as well, you should definitely sync up with kamil (i.e. don't start from ProcessFreeBSD, his process plugin should be a much better starting point).

Mon, Mar 20, 3:08 AM · Restricted Project
labath accepted D31110: [FileSystem] Make file_status store link count and add a file_status::getLinkCount() method..
Mon, Mar 20, 2:28 AM

Fri, Mar 17

labath accepted D31089: Remove FileSystem::GetFilePermissions and FileSystem::SetFilePermissions .

Cool. Nevermind me then.

Fri, Mar 17, 12:57 PM
labath added a comment to D31086: Remove FileSystem::MakeDirectory.

That one is calling a file static function MakeDirectory, not FileSystem::MakeDirectory, and the implementation of that function already calls llvm::sys::fs::create_directories() to create the whole tree, so it should be fine.

Fri, Mar 17, 12:54 PM
labath added a reviewer for D31089: Remove FileSystem::GetFilePermissions and FileSystem::SetFilePermissions : jingham.
Fri, Mar 17, 12:46 PM
labath added a comment to D31086: Remove FileSystem::MakeDirectory.

I think you missed one occurence in ModuleCache.cpp. This one creates a full directory structure, so you will probably need recursion there (unlike in the rest of these cases, which seem fine). Also unlike the rest of these cases, that one is actually covered by a unit test, so you should be able to verify that. :)

Fri, Mar 17, 12:35 PM
labath added a comment to D31079: Replace std::ofstream with llvm::raw_fd_ostream.

In the places where you want to read from an ifstream and write to a socket, you might consider using llvm::sys::fs::copy_file, declared in Support/FileSystem.h. Currently it takes two paths, but all it does is call openFileForRead() on the first one and openFileForWrite() on the second one to get FDs. So you could probably add an overload that takes two FDs, and have the path version just call the FD version. Then you could call the FD version directly with an FD for your file and an FD for your socket.

Fri, Mar 17, 12:20 PM
labath closed D30334: Remove the callback-based log channel registration mechanism.
Fri, Mar 17, 7:58 AM
labath created D31079: Replace std::ofstream with llvm::raw_fd_ostream.
Fri, Mar 17, 7:35 AM
labath committed rL298069: Fix FreeBSD build broken by r298066.
Fix FreeBSD build broken by r298066
Fri, Mar 17, 4:46 AM
labath committed rL298066: Move GetAuxvData from Host to relevant process plugins.
Move GetAuxvData from Host to relevant process plugins
Fri, Mar 17, 4:21 AM
labath closed D31031: Move GetAuxvData from Host to relevant process plugins by committing rL298066: Move GetAuxvData from Host to relevant process plugins.
Fri, Mar 17, 4:20 AM
labath committed rL298063: One more attempt to fix FreeBSD.
One more attempt to fix FreeBSD
Fri, Mar 17, 3:42 AM
labath committed rL298061: Speculative build fix for FreeBSD.
Speculative build fix for FreeBSD
Fri, Mar 17, 3:22 AM
labath committed rL298058: Remove HostThreadLinux/Free/NetBSD.
Remove HostThreadLinux/Free/NetBSD
Fri, Mar 17, 3:03 AM
labath closed D30981: Remove HostThreadLinux/Free/NetBSD by committing rL298058: Remove HostThreadLinux/Free/NetBSD.
Fri, Mar 17, 3:03 AM

Thu, Mar 16

labath added a comment to D31031: Move GetAuxvData from Host to relevant process plugins.

You mention that this was the cause of dependencies from Host to Target, but I don't see any #include "lldb/Target/*.h" statements removed. Is this an oversight or not possible yet?

Thu, Mar 16, 7:48 AM
labath created D31031: Move GetAuxvData from Host to relevant process plugins.
Thu, Mar 16, 7:29 AM
labath added a comment to D30981: Remove HostThreadLinux/Free/NetBSD.

Currently these calls for set/get thread name were moved to LLVM. I haven't checked other systems but the NetBSD one must be called for the current process.

The original NetBSD version was ported from FreeBSD... and it inherited its oddness that used to bite me. Another important note - the NetBSD LLVM version works only for pthread_t (POSIX threads), not native threads. There is also no interface exposed for users to translate native thread (LWP) <-> POSIX thread (pthread_t), it's not a lack of feature but the design that pthread_t is fully opaque. I'm not sure what's the purpose of the LLVM interface, whether to use pthread_t for the current process or any process & native thread like what might happen on Linux. I verified that other interfaces use pthread_t API out there and I accepted that revision.

Thu, Mar 16, 3:07 AM

Wed, Mar 15

labath created D30984: Centralize libc++ test skipping logic.
Wed, Mar 15, 8:39 AM
labath committed rL297843: Remove some ProcFileReader occurences.
Remove some ProcFileReader occurences
Wed, Mar 15, 8:21 AM
labath closed D30942: Remove some ProcFileReader occurences by committing rL297843: Remove some ProcFileReader occurences.
Wed, Mar 15, 8:21 AM
labath accepted D30454: [LLDB][MIPS] Check if memory_info.GetName() is empty before finding corresponding module..

looks good to me, but please give Greg a chance to respond first.

Wed, Mar 15, 7:59 AM
labath created D30981: Remove HostThreadLinux/Free/NetBSD.
Wed, Mar 15, 7:13 AM
labath committed rL297834: Fix TestMoveNearest for remote targets.
Fix TestMoveNearest for remote targets
Wed, Mar 15, 6:44 AM
labath committed rL297830: Fix TestMoveNearest breakage on darwin.
Fix TestMoveNearest breakage on darwin
Wed, Mar 15, 5:44 AM
labath added inline comments to D30942: Remove some ProcFileReader occurences.
Wed, Mar 15, 3:46 AM
labath committed rL297819: Fix windows&darwin builds broken by r297812.
Fix windows&darwin builds broken by r297812
Wed, Mar 15, 3:14 AM
labath committed rL297818: Delete empty file ProcessLauncherLinux.h.
Delete empty file ProcessLauncherLinux.h
Wed, Mar 15, 3:14 AM
labath committed rL297817: BreakpointResolverFileLine: Restrict move-to-nearest-code from moving across….
BreakpointResolverFileLine: Restrict move-to-nearest-code from moving across…
Wed, Mar 15, 3:05 AM
labath closed D30817: BreakpointResolverFileLine: Correct treatment of move-to-nearest-code for multiple modules by committing rL297817: BreakpointResolverFileLine: Restrict move-to-nearest-code from moving across….
Wed, Mar 15, 3:05 AM
labath added a comment to D30817: BreakpointResolverFileLine: Correct treatment of move-to-nearest-code for multiple modules.

This seems good to me. Thanks for doing this.

I made a few inline comments, but none are serious.

Maybe I'm a little over-cautious about this sort of thing, but GetStartLineSourceInfo will return the first line in the line table if there is no decl_file & decl_line. I prefer to only do this if we had decl_file and decl_line, since we know that the fudge factor will be too small for the case where the function beginning is really the first line table entry.

Wed, Mar 15, 2:58 AM
labath committed rL297812: Remove lldb streams from the Log class completely.
Remove lldb streams from the Log class completely
Wed, Mar 15, 2:19 AM
labath closed D30894: Remove lldb streams from the Log class completely by committing rL297812: Remove lldb streams from the Log class completely.
Wed, Mar 15, 2:19 AM
labath added inline comments to D30894: Remove lldb streams from the Log class completely.
Wed, Mar 15, 2:09 AM
labath committed rL297811: dotest.py: remove the ability to specify different architectures/compilers in a….
dotest.py: remove the ability to specify different architectures/compilers in a…
Wed, Mar 15, 2:04 AM
labath closed D30779: dotest.py: remove the ability to specify different architectures/compilers in a single invocation by committing rL297811: dotest.py: remove the ability to specify different architectures/compilers in a….
Wed, Mar 15, 2:04 AM
labath updated subscribers of D30454: [LLDB][MIPS] Check if memory_info.GetName() is empty before finding corresponding module..
Wed, Mar 15, 2:01 AM
labath accepted D30961: Fix build with gcc 7.
Wed, Mar 15, 1:46 AM

Tue, Mar 14

labath added a comment to D30942: Remove some ProcFileReader occurences.
Tue, Mar 14, 9:08 AM
labath added a comment to D30858: Teach llvm's path library to support both windows and posix paths at the same time..

All the manipulation functions would remain freestanding as they are now, but they would accept either a SmallString (in which case they assume native path syntax) or the FileSpec object, where the syntax is stored explicitly. (this would probably require a helper type FileSpecRef, constructible from both, to enable code sharing in the implementation of these functions.)

I can live with this implementation, if that's what people consider better, but I think I'd prefer something where you have the path syntax stored explicitly.

Well, yea. I just think that's exactly what LLDB's FileSpec class already is (or should be anyway, after removing all the excess stuff, which this patch will enable) ;-) And I don't think anyone outside of LLDB will ever need it.

Ok, that makes sense. I guess we can pull FileSpec down to llvm if/when another user of the functionality comes up.

Tue, Mar 14, 8:56 AM
labath added a comment to D30858: Teach llvm's path library to support both windows and posix paths at the same time..

@zturner said (in email)

I actually think that should live in lldb. All of llvm's path handling code is stateless which makes the most sense from an api perspective. Lldb is just "special" in that regard

Tue, Mar 14, 8:28 AM
labath committed rL297743: Fix flakyness in TestCompletion.
Fix flakyness in TestCompletion
Tue, Mar 14, 8:10 AM
labath created D30942: Remove some ProcFileReader occurences.
Tue, Mar 14, 7:53 AM
labath updated the diff for D30817: BreakpointResolverFileLine: Correct treatment of move-to-nearest-code for multiple modules.

I've updated the code as suggested. For the "fudge factor" I chose one, so that
this at least works in the fairly common case where you put an empty line
between two tiny functions. The "breakpoint on return type" case should still
work as long as the retyrn type does not span multiple lines, which I think is a
good compromise.

Tue, Mar 14, 3:22 AM

Mon, Mar 13

labath accepted D30844: pthread_setname_np first appeared in glibc 2.12.

thank you.

Mon, Mar 13, 8:29 AM
labath added a comment to D30844: pthread_setname_np first appeared in glibc 2.12.

If you want to get your build working, I suggest you just remove the setting code.

@labath I have my local build working, but I don't want to carry local patches if possible.

Yes, that's what I meant. :)

Mon, Mar 13, 7:53 AM
labath created D30894: Remove lldb streams from the Log class completely.
Mon, Mar 13, 7:49 AM
labath committed rL297616: Android.rules: Add libc++ support.
Android.rules: Add libc++ support
Mon, Mar 13, 5:20 AM
labath closed D30737: Android.rules: Add libc++ support by committing rL297616: Android.rules: Add libc++ support.
Mon, Mar 13, 5:20 AM
labath added inline comments to D30779: dotest.py: remove the ability to specify different architectures/compilers in a single invocation.
Mon, Mar 13, 5:00 AM
labath added a comment to D30817: BreakpointResolverFileLine: Correct treatment of move-to-nearest-code for multiple modules.

I like the idea of using the function declaration line, as it will solve a couple of other corner cases also (we've had one user try to set a breakpoint on a macro definition and expect that to work). I'll try to implement that instead.

Mon, Mar 13, 4:54 AM
labath committed rL297615: Fix windows build broken by r297612.
Fix windows build broken by r297612
Mon, Mar 13, 4:36 AM
labath requested changes to D30844: pthread_setname_np first appeared in glibc 2.12.

We need the getter code to get the name of the threads of the process we are debugging, so this cannot go away. It also probably does not make sense to move this code into llvm, as it is quite debugger-specific and very unportable.

Mon, Mar 13, 4:28 AM
labath committed rL297612: Fix android build.
Fix android build
Mon, Mar 13, 4:11 AM
labath added a comment to D30858: Teach llvm's path library to support both windows and posix paths at the same time..

Lldb has a copy of a part of this code with the same type of #ifdef -> if changes applied, so it would be great it we could get rid of that.

Mon, Mar 13, 3:29 AM
labath committed rL297609: Fix Linux build for the FileSpec changes.
Fix Linux build for the FileSpec changes
Mon, Mar 13, 2:58 AM

Fri, Mar 10

labath accepted D30807: Use LLVM's directory enumeration code.
Fri, Mar 10, 11:17 AM
labath accepted D30789: Make file and directory name completion work properly on Windows..

lgtm

Fri, Mar 10, 11:16 AM
labath added a comment to D30817: BreakpointResolverFileLine: Correct treatment of move-to-nearest-code for multiple modules.

Can you say more about the problem you are trying to solve.

Yes.

Fri, Mar 10, 11:11 AM
labath created D30817: BreakpointResolverFileLine: Correct treatment of move-to-nearest-code for multiple modules.
Fri, Mar 10, 4:00 AM
labath added a comment to D30807: Use LLVM's directory enumeration code.
Fri, Mar 10, 2:27 AM
labath added a comment to D30789: Make file and directory name completion work properly on Windows..

Seems very reasonable. A couple of details I noticed are in the inline comments.

Fri, Mar 10, 1:59 AM

Thu, Mar 9

labath created D30779: dotest.py: remove the ability to specify different architectures/compilers in a single invocation.
Thu, Mar 9, 4:23 AM
labath committed rL297368: Fix remaining threading issues in Log.h.
Fix remaining threading issues in Log.h
Thu, Mar 9, 2:28 AM
labath committed rL297369: cmake: Increase LINK_INTERFACE_MULTIPLICITY of lldbCore.
cmake: Increase LINK_INTERFACE_MULTIPLICITY of lldbCore
Thu, Mar 9, 2:28 AM
labath closed D30702: Fix remaining threading issues in Log.h by committing rL297368: Fix remaining threading issues in Log.h.
Thu, Mar 9, 2:28 AM
labath added a comment to D30702: Fix remaining threading issues in Log.h.
Thu, Mar 9, 2:04 AM
labath accepted D30668: Add llvm::sys::fs::real_path.

looks good to me, thank you for the patience. BTW I accidentally stumbled onto this https://docs.python.org/2/library/os.path.html#os.path.expanduser yesterday, so it looks like supporting tilde expressions on windows is not without precedent.

Thu, Mar 9, 1:40 AM

Wed, Mar 8

labath created D30737: Android.rules: Add libc++ support.
Wed, Mar 8, 7:45 AM
labath committed rL297279: Android.rules: fix computation of gcc toolchain directory on arm.
Android.rules: fix computation of gcc toolchain directory on arm
Wed, Mar 8, 7:09 AM
labath added a comment to D30736: [Support] Add support for getting file system permissions on Windows and implement sys::fs::set/getPermissions to work with them.

Sounds reasonable to me, but I'd wait for others' opinion.

Wed, Mar 8, 7:01 AM
labath updated the diff for D30702: Fix remaining threading issues in Log.h.

I've repurposed the stream mutex to protect the entirety of enable/disable
operations. To make this flow better, I've also gotten rid of the LogAndChannel
struct and make Channel a member of Log directly (which required moving some
declarations from the cpp file to the header).

Wed, Mar 8, 3:47 AM