- Dynamic Analysis Problem Types
- Cross-thread Stack Access
Occurs when a thread accesses a different thread's stack.
- Data Race
Occurs when multiple threads access the same memory location without proper synchronization and at least one access is a write.
Occurs when two or more threads are waiting for each other to release resources (such as mutexes, critical sections, and thread handles) while holding resources the other threads are trying to acquire. If none of the threads release their resources, then none of the threads can proceed.
- Incorrect memcpy Call
Occurs when an application calls the memcpy function with two pointers that overlap within the range to be copied. This condition is only checked on Linux* systems. On Windows* systems, this function is safe for overlapping memory.
- Invalid Deallocation
Occurs when an application calls a deallocation function with an address that does not correspond to dynamically allocated memory.
- Invalid Memory Access
Occurs when a read or write instruction references memory that is logically or physically invalid.
- Invalid Partial Memory Access
Occurs when a read or write instruction references a block (2-bytes or more) of memory where part of the block is logically invalid.
- Lock Hierarchy Violation
Occurs when the acquisition order of multiple synchronization objects (such as mutexes, critical sections, and thread handles) in one thread differs from the acquisition order in another thread, and these synchronization objects are owned by the acquiring thread and must be released by the same thread.
- Memory Growth
Occurs when a block of memory is allocated but not deallocated within a specific time segment during application execution.
- Memory Leak
Occurs when a block of memory is allocated, never deallocated, and not reachable (there is no pointer available to deallocate the block).
- Memory Not Deallocated
Occurs when a block of memory is allocated, never deallocated, but still reachable at application exit (there is a pointer available to deallocate the block).
- Mismatched Allocation/Deallocation
Occurs when a deallocation is attempted with a function that is not the logical reflection of the allocator used.
- Missing Allocation
Occurs when an invalid pointer is passed to a deallocation function. The invalid address may point to a previously released heap block.
- Thread Exit Information
Occurs when the Intel Inspector detects thread termination. This problem is really informational feedback.
- Thread Start Information
Occurs when the Intel Inspector detects the creation of a thread. This problem is really informational feedback useful for confirming the number and location of threads created during application execution and data collection.
- Unhandled Application Exception
Occurs when the application undergoing analysis crashes because of an unhandled exception thrown by the application.
- Uninitialized Memory Access
Occurs when a read of an uninitialized memory location is reported.
- Uninitialized Partial Memory Access
Occurs when a read instruction references a block (2-bytes or more) of memory where part of the block is uninitialized.
- Intel® Thread Checker Problem
- Static Analysis