clayborg (Greg Clayton)
User

Projects

User does not belong to any projects.

User Details

User Since
Sep 23 2014, 10:11 AM (168 w, 1 d)

Recent Activity

Today

clayborg accepted D41169: ObjectFile: remove ReadSectionData/MemoryMapSectionData mutual recursion.

This was left over from before we mmap'ed the entire object file into memory. Removing it is fine as the backing DataBufferSP for the object file will be mmaped or not depending on where the file was loaded from and if the section isn't compressed, we will just hand out a shared slice of the object file data.

Wed, Dec 13, 12:22 PM

Yesterday

clayborg added a comment to D41070: llgs: Propagate the environment when launching the inferior from command line.

No worries then. No need to make a new enum if this is just two places and they aren't all setting the same flags.

Tue, Dec 12, 11:11 AM
clayborg added a comment to D40616: ObjectFileELF: Add support for compressed sections.

Sounds good,. So the solution will be:

  • Section::GetFileSize() will return the size in bytes of the section data as it appears in the file
  • Section::GetByteSize() will return the size in bytes for when this section is loaded into process memory (we might consider renaming this to "GetLoadSize()" then?)
  • Getting section data might return more data that GetByteSize() if it needs to be decompressed and decompression will happen automatically
Tue, Dec 12, 8:09 AM

Mon, Dec 11

clayborg added inline comments to D41092: Enable more abilities in SymbolFilePDB.
Mon, Dec 11, 1:49 PM
clayborg added a comment to D41086: [lldb] Check that a regex is valid before searching by regex for a symbol in a pdb..

We should have a dedicated API that actually searches for types using a lldb_private::RegularExpression. Why do we even try to create a regular expression in SymbolFilePDB::FindTypes()? Was it used in testing? No API in LLDB currently expects this and all other API in LLDB has a separate function call that uses lldb_private::RegularExpression. We can add one if needed to the lldb_private::SymbolFile API. I don't like API that magically tries to look at something and tries to compile a regular expression on each invocation. Can we change this?

Mon, Dec 11, 1:37 PM
clayborg added a comment to D40616: ObjectFileELF: Add support for compressed sections.

I think GetFileSize() should remain the number of bytes of the section on disk and we should add new API if we need to figure out the decompressed size. Or maybe when we get bytes from a compressed section we are expected to always just get the raw bytes, then we check of the section is compressed, and if so, then we call another API on ObjectFile to decompress the data. So I would prefer GetFileSize() to return the file size of the section size in the file and not the decompressed size. Is there a way to make this work?

Mon, Dec 11, 10:23 AM
clayborg added a comment to D41069: NPL: Clean up handling of inferior exit.

Is the lldb_private::Process we have an exit status in the class itself. The first person to set the exit status wins and no one can set it twice. Doesn't look like what we are doing here. I am not able to tell what actually fixes things here?

Mon, Dec 11, 9:18 AM
clayborg accepted D41070: llgs: Propagate the environment when launching the inferior from command line.

Anything that launches a process should use the ProcessLaunchInfo. Nice patch.

Mon, Dec 11, 9:14 AM

Tue, Dec 5

clayborg added a comment to D40869: Optimize fake ELF section lookup while parsing symbols in ObjectFileELF.

Looks fine to me, but a test would be nice as Zach suggested. I am guessing before we made way too many sections. Should be easy to conjure up a test and verify the same sections is used.

Tue, Dec 5, 4:07 PM
clayborg accepted D40821: Fix const-correctness in RegisterContext methods, NFC.
Tue, Dec 5, 3:40 PM
clayborg resigned from D40064: Do not use default arguments of DataLayout::getPointer*. NFC.

I don't believe I am the right guy to review this.

Tue, Dec 5, 3:33 PM
clayborg added a comment to D40821: Fix const-correctness in RegisterContext methods, NFC.
In D40821#945379, @vsk wrote:

Seems wrong to remove the const on structs that don't need to change in order to make the write happen. Can't we just quiet the warnings with a const_cast inside the function call?

Absolutely. I opted for dropping const to make the DoRead* and DoWrite* methods feel consistent. At first glance, it looked like there may be methods in RegisterContext which expect non-const GPR/FPU/etc objects, so it seemed reasonable to drop const.

I'm open to just adding in the const_cast<X>(static_cast<const X>(...)) pattern as needed to suppress warnings, and to constifying the rest of RegisterContext as a follow-up. Let me know what you'd prefer.

Tue, Dec 5, 11:20 AM
clayborg added a comment to D40821: Fix const-correctness in RegisterContext methods, NFC.

Seems wrong to remove the const on structs that don't need to change in order to make the write happen. Can't we just quiet the warnings with a const_cast inside the function call?

Tue, Dec 5, 10:19 AM
clayborg added a comment to D40745: Add a clang-ast subcommand to lldb-test.

One really nice way we can get a lot of testing of the DWARF to clang::ASTContext conversion is to:
1 - compile a source file with clang and dumps the AST for a specific type as the compiler knows it
2 - using the .o file with debug info from step 1, load it into LLDB and have the DWARF to clang::ASTContext conversion happen and dump the AST info for the type
3 - compare the two and look for differences

Tue, Dec 5, 9:37 AM

Wed, Nov 29

clayborg requested changes to D40467: DWZ 04/12: Separate Offset also into FileOffset.

Please undo all renaming from offset to file_offset. The "offset" you get from a DIE should always be the absolute .debug_info offset. No need to say file_offset. Patch will be easier to read after spurious renames are removed.

Wed, Nov 29, 1:47 PM
clayborg requested changes to D40466: DWZ 03/12: DWARFCompileUnit split to DWARFCompileUnitData.

Take a look how the LLVM DWARF parser handles its units. It makes a DWARFUnit base class that the compile unit inherits from. That can then be used for type units and compile units.

Wed, Nov 29, 1:41 PM
clayborg added a comment to D40616: ObjectFileELF: Add support for compressed sections.

Why would we text scrape when we can test the API?

Wed, Nov 29, 11:03 AM
clayborg accepted D40616: ObjectFileELF: Add support for compressed sections.
Wed, Nov 29, 10:56 AM
clayborg accepted D40615: Fix assertion in ClangASTContext.

Few nits, but nothing that would hold up the patch. Looks good.

Wed, Nov 29, 10:55 AM

Tue, Nov 28

clayborg accepted D40587: [lldb] Minor fixes in TaskPool.
Tue, Nov 28, 3:59 PM
clayborg added a comment to D40539: Allow using the object file name for debug symbol resolution.

ok, this is fine then. Just need to test somehow.

Tue, Nov 28, 11:03 AM
clayborg added a comment to D40537: Simplify UUID::IsValid().

No one is relying on the 16 bytes of zeroes that I know of. UUID::IsValid() is the test that everyone uses to tell if the UUID is valid or not. I still prefer to just set the length to zero as this does allow us to have a UUID of all zeroes if needed.

Tue, Nov 28, 10:24 AM
clayborg added a comment to D40539: Allow using the object file name for debug symbol resolution.
In D40539#937854, @sas wrote:

Basically, if you have a .debug directory in the same directory where the original object file is, you can have debug symbols there. For instance, you can have:

/my/project/myElf.exe
/my/project/.debug/myElf.exe

with the first file being a standard stripped elf file, and the second one being the associated debug symbols.

Tue, Nov 28, 10:22 AM
clayborg requested changes to D40538: Relax size constraints on UUID objects.

You can abandon https://reviews.llvm.org/D40537 and just do the fixes I suggested in that change here: init m_num_uuid_bytes to zero in constructor and in Clear() and change UUID::IsValid() to just return "m_num_uuid_bytes > 0". I agree we should relax the UUID length.

Tue, Nov 28, 10:12 AM
clayborg requested changes to D40537: Simplify UUID::IsValid().

A better solution would be to initialize UUID::m_num_uuid_bytes with zero and only set it to a valid value if we set bytes into it. Then UUID::IsValid() becomes easy:

Tue, Nov 28, 10:06 AM
clayborg added a comment to D40539: Allow using the object file name for debug symbol resolution.

I am not sure I follow this patch. We are adding a FileSpec whose path is just the basename of the current ELF file? What do we do with that? Do we look in certain directories to try and find this file? How this this basename added to the list end up getting found in the end?

Tue, Nov 28, 9:55 AM

Mon, Nov 27

clayborg accepted D40519: Remove some duplicated code in UUID.cpp.
Mon, Nov 27, 2:09 PM
clayborg accepted D40517: Mark UUID::GetByteSize() const.
Mon, Nov 27, 1:09 PM
clayborg added a comment to D40283: lldb: Use the DWARF linkage name when importing C++ methods.

ok, sounds like the abi_tag stuff is meant to just affect the mangled named with no code gen implications. Jim should ok this, but I am ok if he is.

Mon, Nov 27, 11:17 AM
clayborg requested changes to D40473: DWZ 10/12: Adjust existing code for the DWZ support..
Mon, Nov 27, 11:05 AM
clayborg requested changes to D40472: DWZ 09/12: Protect DWARFDebugInfo::m_compile_units by a new mutex.

DWARFDebugInfo::ParseCompileUnitHeadersIfNeeded() seems broken, see inlined comments.

Mon, Nov 27, 10:52 AM
clayborg requested changes to D40471: DWZ 08/12: DWARFCompileUnit::ExtractDIEsIfNeeded can now expand AllDiesButCuDieOnlyForPartialUnits.

See inline comments.

Mon, Nov 27, 10:44 AM
clayborg requested changes to D40470: DWZ 07/12: Protect DWARFCompileUnit::m_die_array by a new mutex.
Mon, Nov 27, 10:39 AM
clayborg requested changes to D40469: DWZ 06/12: Mask DW_TAG_partial_unit as DW_TAG_compile_unit for Tag().

Seems like it would be cleaner to leave DWARFDebugInfoEntry and DWARFDie alone and just make clients deal with accepting DW_TAG_partial_unit when and where they need to. I don't like the idea of not telling the truth.

Mon, Nov 27, 10:27 AM
clayborg requested changes to D40468: DWZ 05/12: Support reading section ".gnu_debugaltlink".

Just move the eSectionTypeDWARFGNUDebugAltLink enumerator to the end of the enum and this is good to go.

Mon, Nov 27, 10:24 AM
clayborg added a comment to D40467: DWZ 04/12: Separate Offset also into FileOffset.

It would be much easier to read this patch if there were no renames from "*offset" to "*file_offset". Can we remove these extra renames where it isn't needed?

Mon, Nov 27, 10:17 AM
clayborg added inline comments to D40466: DWZ 03/12: DWARFCompileUnit split to DWARFCompileUnitData.
Mon, Nov 27, 10:11 AM
clayborg accepted D40212: DWZ 02/12: refactor: Unify+simplify DWARFCompileUnit ctor+Clear() into in-class initializers + Extract().

Won't hold up the checkin for the cleaner while loop, but feel free to fix that and checkin if it works.

Mon, Nov 27, 10:07 AM
clayborg accepted D37492: DWZ 01/12: Prevent vain lldb::user_id_t 0xffffffff lookups.

This change should be fine. Watch buildbots for changes. If they were clean they should stay clean, if they had some fails, then only those fails should continue failing.

Mon, Nov 27, 9:54 AM
clayborg accepted D40434: Fix floating point register write on new x86 linux kernels.
Mon, Nov 27, 9:49 AM
clayborg accepted D40133: elf-core: Convert remaining register context to use register set maps.
Mon, Nov 27, 9:47 AM
clayborg added a comment to D40283: lldb: Use the DWARF linkage name when importing C++ methods.

Jim will need to ok this. A few concerns follow. Most of the time when we don't get the DWARF -> AST conversion right, it can mean that we might code gen incorrect code. Is there not enough information for the GNU abi_tag in the DWARF to actually re-create these classes correctly in the AST? My first inclination would be to fix that if possible. If there is info missing from the DWARF such that we can't re-create the AST correctly, then it seems that this approach will help. Can you clarify what the GNU abi_tag stuff does? Will it change how code would be generated? If we have things in the AST that aren't correct, but have been fixed by correcting the "asm" tag, will we JIT up bad code?
-

Mon, Nov 27, 9:42 AM

Wed, Nov 22

clayborg accepted D40311: elf-core: Split up parsing code into os-specific functions.
Wed, Nov 22, 10:09 AM

Tue, Nov 21

clayborg added inline comments to D40311: elf-core: Split up parsing code into os-specific functions.
Tue, Nov 21, 8:36 AM

Mon, Nov 20

clayborg added a comment to D40156: Fix recursive attribute fetching in DWARFDie.

I can add a test that does this if needed.

Mon, Nov 20, 1:30 PM · debug-info
clayborg added a comment to D40156: Fix recursive attribute fetching in DWARFDie.

Ping

Mon, Nov 20, 7:46 AM · debug-info

Sun, Nov 19

clayborg added a comment to D40212: DWZ 02/12: refactor: Unify+simplify DWARFCompileUnit ctor+Clear() into in-class initializers + Extract().

Good change in the header file.

If you mean the in-class initializers they obviously cannot be used without the in-place construction+destruction as they would stay duplicate to the Clear() method.

OK if you are also uncomfortable with it I will keep Clear() as is and just call Clear() from the ctor to unify it at least a bit.

Sun, Nov 19, 10:44 AM
clayborg requested changes to D40216: #if 0 for DWARFDebugInfo::Find() as it is unused.

Feel free to remove any unused code. No need for review on dead code removal. So just remove the code, don't add #if 0

Sun, Nov 19, 10:23 AM
clayborg requested changes to D40214: performance: Prevent needless DWARFCompileUnit::Clear() on freshly ctor-ed object.

See inline comments.

Sun, Nov 19, 10:21 AM
clayborg added a comment to D40212: DWZ 02/12: refactor: Unify+simplify DWARFCompileUnit ctor+Clear() into in-class initializers + Extract().

Good change in the header file. I am not sure I like the destruct this object in place and replace with new version... If this is commonly done and acceptable form of C++ I would be ok with it, but I agree with Pavel, it seems a little bit off the books.

Sun, Nov 19, 10:13 AM

Fri, Nov 17

clayborg created D40199: llvm-dwarfdump --verify is incorrectly saying all DW_AT_location attributes with locations lists are invalid..
Fri, Nov 17, 2:39 PM · debug-info
clayborg added inline comments to D40133: elf-core: Convert remaining register context to use register set maps.
Fri, Nov 17, 2:09 PM
clayborg added inline comments to D40133: elf-core: Convert remaining register context to use register set maps.
Fri, Nov 17, 9:54 AM

Thu, Nov 16

clayborg added a comment to D40156: Fix recursive attribute fetching in DWARFDie.

This change also stops extra calls to the Die.find() when a new Die wasn't fetched using Die.getAttributeValueAsReferencedDie as it was always calling Die.Find() even with the old Die...

Thu, Nov 16, 4:03 PM · debug-info
clayborg created D40156: Fix recursive attribute fetching in DWARFDie.
Thu, Nov 16, 4:01 PM · debug-info

Wed, Nov 15

clayborg added a comment to D40079: Make sure DataBufferLLVM contents are writable.

I had suggested in D38142 that we have ObjectFileELF check the file type of the file and only map with write abilities if the ELF file is an object file since that is the only time we need relocations. If we can pass a flag through to indicate how to map, would that provide any additional performance improvements?

Wed, Nov 15, 10:05 AM

Tue, Nov 14

clayborg accepted D40022: Remove extra minuses from command option.

The "--set-pc-to-entry" change is fine. No need for review when removing unused variables or clang formatting, but it would be nice to do those commits separately.

Tue, Nov 14, 9:22 AM
clayborg accepted D39578: Fix a couple of self-assignments using memcpy..
Tue, Nov 14, 9:16 AM
clayborg requested changes to D39967: Refactoring of MemoryWrite function.

Please clang format and check in without any changes to the functionality and then make a patch that only has your functional changes.

Tue, Nov 14, 8:41 AM
clayborg requested changes to D39969: Set error status in ObjectFile::LoadInMemory if it is not set .

Before working on a file for a diff you will submit, clang format it first, and then check it in. No need for review on clang format only changes.

Tue, Nov 14, 8:41 AM
clayborg added a comment to D39967: Refactoring of MemoryWrite function.

I believe we normally just clang format the changes. This is done with:

Tue, Nov 14, 8:38 AM

Nov 13 2017

clayborg requested changes to D39578: Fix a couple of self-assignments using memcpy..

First change looks good. Second one we can probably avoid doing anything in Value::AppendDataToHostBuffer and return 0. No need to copy data over itself.

Nov 13 2017, 10:11 AM

Nov 10 2017

clayborg added a comment to D39896: Remove last Host usage from ArchSpec.

I just saw Jim's email for this, Please comment in this bug so we can all see the info in one location. Accepting pending the outcome of the discussion that Jim start in email that I am pasting below:

Nov 10 2017, 11:12 AM
clayborg accepted D39896: Remove last Host usage from ArchSpec.
Nov 10 2017, 11:10 AM
clayborg accepted D39844: CompilerType: Add ability to retrieve an integral template argument.
Nov 10 2017, 11:05 AM

Nov 9 2017

clayborg added a comment to D39844: CompilerType: Add ability to retrieve an integral template argument.

I see your point. But if we do ask a template parameter for its type, I would like to be able to get it's type somehow. Seems wrong to leave this out. I know it doesn't mirror clang, but we should do the right thing here. At least at the SB API layer. I am fine with leaving the new TypeSystem calls as you added them.

Nov 9 2017, 10:51 AM
clayborg added inline comments to D39844: CompilerType: Add ability to retrieve an integral template argument.
Nov 9 2017, 9:49 AM
clayborg requested changes to D39844: CompilerType: Add ability to retrieve an integral template argument.

Just a few changes.

  • I would like the see the SBType returned for the integer template types as it is what I would expect to happen.
  • we should add default implementations for stuff in TypeSystem and not require all languages to override everything. I know this isn't the way things were done in the past, but we should fix that to avoid bloat in all TypeSystem subclasses.
Nov 9 2017, 9:38 AM
clayborg accepted D39837: Clean up NativeRegisterContext.
Nov 9 2017, 9:28 AM
clayborg added a comment to D39825: [lldb] Ensure that dwo/dwp are not double-indexed.

If no tests currently fail due to this, then we need to add some.

Nov 9 2017, 9:24 AM
clayborg accepted D39825: [lldb] Ensure that dwo/dwp are not double-indexed.

Looks fine to me as long as you got a clean test suite run. Be sure to keep an eye on the buildbots after this goes in.

Nov 9 2017, 9:22 AM

Nov 8 2017

clayborg accepted D39733: Simplify NativeProcessProtocol::GetArchitecture/GetByteOrder.
Nov 8 2017, 9:19 AM

Nov 7 2017

clayborg added a comment to D39733: Simplify NativeProcessProtocol::GetArchitecture/GetByteOrder.

If it isn't expensive to copy, then we should probably just return by value.

Nov 7 2017, 8:35 PM
clayborg requested changes to D39733: Simplify NativeProcessProtocol::GetArchitecture/GetByteOrder.

Looks fine. Seems like you should use your a const reference in a few places and this will be good to go?

Nov 7 2017, 3:06 PM
clayborg accepted D39727: Make TestTopLevelExprs more robust in face of linker GC.
Nov 7 2017, 3:02 PM

Nov 6 2017

clayborg accepted D39692: Disable tests in lang/c/shared_lib on Windows.
Nov 6 2017, 3:06 PM
clayborg added a comment to D39692: Disable tests in lang/c/shared_lib on Windows.

Are we planning on getting shared libraries working on windows? Or this is just an expression parser with shared libraries bug? Be nice to file a bug and mention it if it is something we are planning on fixing.

Nov 6 2017, 1:44 PM
clayborg accepted D39689: Add a dependency from check-lldb on lld.

Do we want to add an option to our build system to try LLD where it is supported? Doesn't need to be part of this patch, but it would be great to be able to try it out on ELF based systems.

Nov 6 2017, 10:19 AM
clayborg added inline comments to D39681: Implement core dump debugging for PPC64le.
Nov 6 2017, 10:18 AM
clayborg accepted D39680: "Fix" concurrent events test for arm.
Nov 6 2017, 10:15 AM
clayborg accepted D39545: Support scoped enums in the DWARF AST parser.

Looks good.

Nov 6 2017, 10:11 AM

Nov 2 2017

clayborg accepted D39574: Add type to FileSpec::PathSyntax enum..
Nov 2 2017, 4:06 PM
clayborg added a comment to D38829: Python: SetOutputFileHandle doesn't work with IOBase.

Ok, I wasn't aware of the libedit problem.

I still don't like this approach, because it causes the design of the File class to be influenced by a limitation of a 3rd party library.

What about adding a method to IOObject called FILE *GetFileStream(). Then the method I proposed earlier would just involve PythonFileIo implementing this in the proper way. Then we can pass SBFile or lldb_private::File through all layers of the codebase, and once we're in libedit we just call file.GetFileStream() and pass it to libedit?

Nov 2 2017, 11:59 AM
clayborg added a comment to D38829: Python: SetOutputFileHandle doesn't work with IOBase.

Another option would be to add a URL version of these functions:

Nov 2 2017, 11:38 AM
clayborg accepted D39515: Remove TestMyFirstWatchpoint and TestStepOverWatchpoint from basic_process category.
Nov 2 2017, 9:14 AM

Nov 1 2017

clayborg added a comment to D39515: Remove TestMyFirstWatchpoint and TestStepOverWatchpoint from basic_process category.

No objections from me as I don't use these categories.

Nov 1 2017, 3:37 PM
clayborg added a comment to D39436: Add regex support to file (-f) and module (-s) breakpoint options..

And yes, the memory savings are quite large as well when sharing directories.

Nov 1 2017, 11:17 AM
clayborg added a comment to D39436: Add regex support to file (-f) and module (-s) breakpoint options..

The main reason for two strings is for searching efficiency. Most people don't set breakpoints using full paths, they give the basename:

(lldb) b main.c:12
Nov 1 2017, 11:16 AM
clayborg added a comment to D39436: Add regex support to file (-f) and module (-s) breakpoint options..

I was unhappy when we went over two pointers for a FileSpec when m_syntax was added due to the extra size. Anything we can do to make this smaller would be great, so the type on the enum would work, but as you say the alignment will nullify that. The two ConstString members contain a pointer which isn't aligned so we can't use any bits from the low end of the pointer. Are there any classes that take advantage of high bits in pointers? Most if not all OS's don't use the entire 64 bit address space... It would be great to get lldb_private::FileSpec down to just 2 pointers again.

ConstString doesn't *currently* contain aligned pointers, but there's no reason we couldn't make it contain aligned pointers. Then we could use llvm::PointerUnion.

Nov 1 2017, 9:54 AM
clayborg accepted D39487: Add float/vector registers for ppc64le.

Looks fine.

Nov 1 2017, 9:51 AM
clayborg added a comment to D39436: Add regex support to file (-f) and module (-s) breakpoint options..

I was unhappy when we went over two pointers for a FileSpec when m_syntax was added due to the extra size. Anything we can do to make this smaller would be great, so the type on the enum would work, but as you say the alignment will nullify that. The two ConstString members contain a pointer which isn't aligned so we can't use any bits from the low end of the pointer. Are there any classes that take advantage of high bits in pointers? Most if not all OS's don't use the entire 64 bit address space... It would be great to get lldb_private::FileSpec down to just 2 pointers again.

Nov 1 2017, 9:44 AM

Oct 31 2017

clayborg requested changes to D39436: Add regex support to file (-f) and module (-s) breakpoint options..

A few general things: don't modify FileSpec, we have many of these objects and we can't increase their size without directly affecting memory usage. FileSpec objects represent one file on disk, not multiple. We should make a new class that contains a FileSpec and a regex, but not put it into FileSpec.

Oct 31 2017, 9:49 AM

Oct 26 2017

clayborg added a comment to D36347: New lldb python module for adding diagnostic breakpoints.

Each lldb.SBValue has accessors for the stuff in an execution context:

Oct 26 2017, 3:00 PM
clayborg accepted D36347: New lldb python module for adding diagnostic breakpoints.
Oct 26 2017, 11:48 AM
clayborg added a comment to D36347: New lldb python module for adding diagnostic breakpoints.

Looks good.

Oct 26 2017, 11:48 AM
clayborg added a comment to D39315: Correct the start address for exported windows functions in arm.

The test suite can be run remotely if ds2 supports the "lldb-server platform" packets. I'll be happy to help you get this going Stephane. Ping me internally if interested.

Oct 26 2017, 11:47 AM
clayborg accepted D39337: Implement a simple GetAddressClass for PECOFF.
Oct 26 2017, 10:55 AM
clayborg accepted D36347: New lldb python module for adding diagnostic breakpoints.
Oct 26 2017, 10:53 AM
clayborg accepted D39315: Correct the start address for exported windows functions in arm.
Oct 26 2017, 10:51 AM
clayborg added a comment to D39314: Implement basic DidAttach and DidLaunch for DynamicLoaderWindowsDYLD.

Testing would include a test that dynamically loads a shared library and sets a breakpoint it in. We have these tests, but I am guessing they are disabled on windows probably because they might use "dlopen(...)" which is probably not available on windows? I know we have attach tests as well. Many tests are disabled on windows, but probably shouldn't be. So I would start looking for those tests. The code will need to be window-ized with #ifdefs and such, but it shouldn't be hard. The shared libraries tests will dynamically open a shared library and then verify we can hit a breakpoint in that shared library (a hint that the DYLD worked). So these tests don't need to be windows specific.

Oct 26 2017, 10:19 AM