Reputation: 4333
Is there any difference between Live and IntelliTrace Debugging ?
And also why i cannot use IntelliTrace while coding C++ ? If there is a way to use it while coding c++ , how can i adapt it ?
Upvotes: 2
Views: 1366
Reputation: 6490
IntelliTrace is different from live debugging. http://msdn.microsoft.com/en-us/library/dd264915.aspx
It is not implemented for C++ as it makes use of the .net environment.
IntelliTrace is available only in Visual Studio Ultimate
(or Enterprise as of VS2015, although it might change in future releases) and the link above already explains all features.
The difference between live debugging and IntelliTrace is some sort of "replayability". While you can make dumps with live debugging you get only one point in time while IntelliTrace allows you to gather and check a history of the application. IntelliTrace must be configured so that it records its data while an application is running.
Copy paste from the page above:
Traditional or live debugging shows only your app's current state with limited data about past events. You either have to infer these events based on the app's current state, or you have to recreate these events by rerunning your app.
IntelliTrace expands this traditional debugging experience by recording specific events and data at these points in time. This lets you see what happened in your app without restarting it, especially if you step past where the bug is. IntelliTrace is turned on by default during traditional debugging and collects data automatically and invisibly. This lets you switch easily between traditional debugging and IntelliTrace debugging to see the recorded information. See Record Code Execution with IntelliTrace for Debugging in Visual Studio and What data does IntelliTrace collect?
Small anecdote: The Visual Studio team tries to push as many features into lower editions as much as possible to make them accessible to more people but what feature is available in what edition is decided by the marketing department.
Upvotes: 1
Reputation: 364
For live debugging, the target application is paused and the debugger can observe (and sometimes modify) the whole target process.
IntelliTrace, as it's name suggested can be understood as a "smart tracing", certain information that considered valuable are recorded into a log file (.itrace file). You can save and open the log file at a later time point on another machine. The recorded information includes application's process, threads, modules, IntelliTrace events, and function calls based on user's configuration. For each event and function call, the call stack with selected parameter values is also recorded.
Visual studio needs some UI to view this log, and debugger UI almost has it all. It's not precise but you can generally understand "IntelliTrace debugging" as viewing a trace log with debugger UI. Most debugger windows (process, thread, call stack, locals, modules etc.) work as expected, but they are doing no more than showing an event or function call happened in target application's history. User can only observe, but not modify the target application.
Upvotes: 1