Runtime Emulating Static Thread Local Storage of Portable Executable Software Code
Abstract
A computer readable storage medium containing a program which, when executed by a processor, performs an operation of emulating static thread local storage of an executable software code at runtime, is disclosed. The operation includes executing the executable software code within a process memory space. During the execution of the executable software code, an occurrence of an event that is associated with a thread create operation is monitored. When the monitored event occurs, a thread data block duplicate is established within the process memory space and associated with a thread created by the thread create operation. The thread data block duplicate is configured to be accessed by executing a thread local storage callback function.
Claims
exact text as granted — not AI-modified1 . A computer readable storage medium containing a program which, when executed by a processor, performs an operation of emulating static thread local storage of an executable software code at runtime, the operation comprising:
executing the executable software code within a process memory space; during the executing, monitoring an occurrence of an event associated with a thread create operation in the executable software code; and upon the occurrence of the event, establishing a thread data block duplicate within the process memory space and associating the thread data block duplicate with a thread created by the thread create operation, the thread data block duplicate is configured to be accessed by executing a thread local storage callback function.
2 . The computer readable storage medium of claim 1 , wherein the thread local storage callback function is executed on an occurrence of at least one of loading of a DLL and an unloading of the DLL.
3 . The computer readable storage medium of claim 1 , wherein the establishing of the thread data block duplicate includes configuring the thread data block duplicate to provide one or more partitions based upon static DLL imports in the executable software code.
4 . The computer readable storage medium of claim 1 , wherein the establishing of the thread data block duplicate includes configuring the thread data block duplicate to provide one or more partitions based upon one or more DLLs to be loaded in the executable software code at runtime.
5 . The computer readable storage medium of claim 4 , wherein the DLLs to be loaded are identified through at least one of an application developer input and an application packaging tool.
6 . The computer readable storage medium of claim 4 , wherein a number of the partitions is equal to a number of the DLLs to be load and a size of each of the one or more partitions is calculated based on a size of each of the DLLs to be loaded.
7 . The computer readable storage medium of claim 6 , wherein the size of each of the partitions is calculated prior to establishing the thread data block duplicate.
8 . The computer readable storage medium of claim 6 , wherein a size of the thread data block duplicate corresponds with combined size of the one or more partitions.
9 . The computer readable storage medium of claim 1 , wherein the execution of the thread local storage callback function includes using at least one of a value DLL_PROCESS_ATTACH and a value DLL_PROCESS_DETTACH.
10 . A method for emulating static thread local storage of an executable software code at runtime, the method comprising:
executing the executable software code within a process memory space; during the executing, monitoring an occurrence of an event associated with a thread create operation in the executable software code; and upon the occurrence of the event, establishing a thread data block duplicate within the process memory space and associating the thread data block duplicate with a thread created by the thread create operation, the thread data block duplicate is configured to be accessed by executing a thread local storage callback function.
11 . The method of claim 10 , wherein the thread local storage callback function is executed on an occurrence of at least one of loading of a DLL and an unloading of the loaded DLL.
12 . The method of claim 10 , wherein the establishing of the thread data block duplicate includes configuring the thread data block duplicate to provide one or more partitions based upon static DLL imports in the executable software code.
13 . The method of claim 10 , wherein the establishing of the thread data block duplicate includes configuring the thread data block duplicate to provide one or more partitions based upon one or more DLLs to be loaded in the executable software code at runtime.
14 . The method of claim 13 , wherein the DLLs to be loaded are identified through at least one of an application developer input and an application packaging tool.
15 . The method of claim 13 , wherein a number of the partitions is equal to a number of the DLLs to be load and a size of each of the partitions is calculated based on a size of each of the DLLs to be loaded.
16 . The method of claim 15 , wherein the size of each of the partitions is calculated prior to establishing the thread data block duplicate.
17 . The method of claim 15 , wherein a size of the thread data block duplicate corresponds with combined size of the one or more partitions.
18 . The method of claim 10 , wherein the execution of the thread local storage callback function includes using at least one of a value DLL_PROCESS_ATTACH and a value DLL_PROCESS_DETTACH.
19 . A system, comprising:
a computer system having an operating system; a module executable by the operating system, the module is configured to emulate static thread local storage of an executable software code at runtime, the module further configured to perform an operation, the operation comprising: executing the executable software code within a process memory space; during the executing, monitoring an occurrence of an event associated with a thread create operation in the executable software code; and upon the occurrence of the event, establishing a thread data block duplicate within the process memory space and associating the thread data block duplicate with a thread created by the thread create operation, the thread data block duplicate is configured to be accessed by executing a thread local storage callback function.
20 . The system of claim 19 , wherein the thread local storage callback function is executed on an occurrence of at least one of a loading of a DLL and an unloading of the loaded DLL.Join the waitlist — get patent alerts
Track US2011088047A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.