<div dir="ltr">I've started experimenting with adding support to LLDB for debugging native Windows executables on Windows. So windows host, windows target. I've done a few little cleanup tasks here and there and fixed some low-hanging fruit, and I'd like to move onto something more meaty.<div>
<br></div><div>I took a look at what it would take to get "platform process list" to work. The first thing I notice is that all of the Process info objects contain the notion of a UID and GID, a concept which doesn't really exist on Windows. An analagous concept exists, but it's represented completely differently.</div>
<div><br></div><div>My question is: How best to abstract out this functionality? I'm still not totally clear on where I'm allowed to use platform specific types / APIs and where it needs to be platform agnostic. My first thought is to remove UID and GID from the ProcessInfo class, and replace them with a instance a "ProcessUserId" class, then provide a PosixProcessUserId and a WindowsProcessUserId, which abstracts away the differences. </div>
<div><br></div><div>Assuming this approach is logical, where is the best place for this code to go? Host or Target?</div><div><br></div><div>Anything else I should be aware of?</div></div>