Age | Commit message (Collapse) | Author |
|
The new GetOsModuleHandle API is used by the StackTraceMetadata code in both ProjectN and ProjectX.
[tfs-changeset: 1680143]
|
|
instantiating unboxing stubs.
The implementation uses a general purpose infrastructure that can associate custom data to methods with unwind info, given the fact that unwind info lookups are very fast.
Similar to GC info and EH info, this implementation now provides a way to associate any custom data to methods, by adding a flag and a reloc to the data in the method's unwind info.
The custom data that can be attached to methods begin with a flag (indicating what data follows), followed by data.
Right now, the only custom data we have for methods are unboxing stub target pointers.
The dependency analysis models this custom data using a new node type: MethodAssociatedDataNode.
The custom data (when it exists) can be be retrieved using a new API on ICodeManager.
The changes also include all the necessary plumbing to link custom data nodes symbols for PX (given that it's UTC that emits the unwind info)
[tfs-changeset: 1673664]
|
|
FirstChanceException. We're supposed to pass in an AppDomain as sender, but completing that will require a CoreFX change to pass in an AppDomain we can use.
[tfs-changeset: 1666024]
|
|
- Make it work for all TypeManagerHandle based environments
- Including non INPLACE_RUNTIME based cases
- Uses classlib functions architecture
[tfs-changeset: 1657913]
|
|
[tfs-changeset: 1645382]
|
|
This relies on the existing logic that tries DIA first, and then falls
back to reflection metadata to find method names. If fallback fails, you
get RVAs. Conveniently, the DIA path doesn't even try to run.
|
|
[tfs-changeset: 1634347]
|
|
|
|
opcode (or similar), which end up resolving interface methods using the RhpResolveInterfaceMethod API.
[tfs-changeset: 1632820]
|
|
Today, we assume that funclets are separate methods, in the sense that they get unique unwind information, but that's where the separation ends. They are still tightly coupled to their "parent method" in other ways. One of those couplings is the fact that they must be laid out contiguously with the parent method. These changes update the EH dispatcher and the ICodeManager abstraction to allow for funclets to be disconnected from their parent method. This mostly falls into the category of using addresses instead of offsets when referring to handlers and when handling the special case of "remapping" a hardware fault location to a safe point in an associated handler.
[tfs-changeset: 1612757]
|
|
|
|
- Add CoffNativeCodeManager that is able to decode the Windows OS native unwind info
- Append EH info to the Windows OS unwind info blob in the compiler
|
|
|
|
These changes are targeted at completing/hardening the runtime's
support for the new UniversalTransition and CallDescr thunks and also
clarifying the invariants that hold throughout stack walker operation.
[tfs-changeset: 1568546]
|
|
The old format is binary compatible with the new one, which means programs compiled with the old tool chain should work with the new runtime. Since we had no free bits left in the first 4 bytes of the header (at least on x64), I repurposed the dynamicAlign bit to indicate there is extra data about the frame. At present that extra data consist of dynamic stack alignment and GS cookie offset (both of which are optional). I reserved three bits to allow future extensions of this extra data section. The gsCookieOffset field is inserted after the epilogCount field to improve memory layout.
CR: petersol, jkotas
[tfs-changeset: 1566536]
|
|
This change enables compilation of the runtime excluding the PAL
layer on Linux.
Most of the changes are just to make it build with clang that's
more strict w.r.t. the C++11 standard.
In addition to that, I have removed our implementation of the
new / delete operators and replaced all calls to new in the
runtime by new (nothrow).
|
|
|