This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public IEnumerable<ThreadPoolItem> EnumerateLocalThreadPoolItems() | |
| { | |
| var queueType = GetMscorlib().GetTypeByName("System.Threading.ThreadPoolWorkQueue"); | |
| if (queueType == null) | |
| yield break; | |
| ClrStaticField threadQueuesField = queueType.GetStaticFieldByName("allThreadQueues"); | |
| if (threadQueuesField == null) | |
| yield break; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| private IEnumerable<ThreadPoolItem> EnumerateThreadPoolWorkQueue(ulong workQueueRef) | |
| { | |
| // start from the tail and follow the Next | |
| var proxy = _heap.GetProxy(workQueueRef); | |
| var currentQueueSegment = proxy.queueTail; | |
| while (currentQueueSegment != null) | |
| { | |
| // get the System.Threading.ThreadPoolWorkQueue+QueueSegment nodes array | |
| var nodes = currentQueueSegment.nodes; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| object workQueueValue = workQueueField.GetValue(appDomain); | |
| ulong workQueueRef = (workQueueValue == null) ? 0L : (ulong)workQueueValue; | |
| if (workQueueRef == 0) | |
| continue; | |
| // should be System.Threading.ThreadPoolWorkQueue | |
| ClrType workQueueType = _heap.GetObjectType(workQueueRef); | |
| if (workQueueType == null) | |
| continue; | |
| if (workQueueType.Name != "System.Threading.ThreadPoolWorkQueue") |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public IEnumerable<ThreadPoolItem> EnumerateGlobalThreadPoolItems() | |
| { | |
| // look for the ThreadPoolGlobals.workQueue static field | |
| ClrModule mscorlib = GetMscorlib(); | |
| if (mscorlib == null) | |
| throw new InvalidOperationException("Impossible to find mscorlib.dll"); | |
| ClrType queueType = mscorlib.GetTypeByName("System.Threading.ThreadPoolGlobals"); | |
| if (queueType == null) | |
| yield break; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| @inproceedings{DiemertMeynet2017, | |
| author = {{Diemert Eustache, Meynet Julien} and Galland, Pierre and Lefortier, Damien}, | |
| title={Attribution Modeling Increases Efficiency of Bidding in Display Advertising}, | |
| publisher = {ACM}, | |
| pages={To appear}, | |
| booktitle = {Proceedings of the AdKDD and TargetAd Workshop, KDD, Halifax, NS, Canada, August, 14, 2017}, | |
| year = {2017} | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public partial class DebuggerExtensions | |
| { | |
| [DllExport("Help")] | |
| public static void Help(IntPtr client, [MarshalAs(UnmanagedType.LPStr)] string args) | |
| { | |
| OnHelp(client, args); | |
| } | |
| [DllExport("help")] | |
| public static void help(IntPtr client, [MarshalAs(UnmanagedType.LPStr)] string args) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| [DllExport("tks")] | |
| public static void tks(IntPtr client, [MarshalAs(UnmanagedType.LPStr)] string args) | |
| { | |
| OnTkState(client, args); | |
| } | |
| [DllExport("tkstate")] | |
| public static void tkstate(IntPtr client, [MarshalAs(UnmanagedType.LPStr)] string args) | |
| { | |
| OnTkState (client, args); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public partial class DebuggerExtensions | |
| { | |
| public static IDebugClient DebugClient { get; private set; } | |
| public static DataTarget DataTarget { get; private set; } | |
| public static ClrRuntime Runtime { get; private set; } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Must be the first thing in our extension. | |
| if (!InitApi(client)) | |
| return; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public static void MyCommand(IntPtr client, [MarshalAs(UnmanagedType.LPStr)] string args) |