Quantcast
Channel: C#
Viewing all articles
Browse latest Browse all 1853

About Investigating Problems Using Interactive Debugging

$
0
0

Sometimes simply knowing the location of a problem is not enough. So the Intel Inspector provides the opportunity to investigate more deeply with an interactive debugging session during analysis.

When you run an interactive debugging session during analysis, the Intel Inspector halts execution at a selected or detected problem. This is more efficient than simply setting a code breakpoint at a reported problem location because the code could execute thousands of times before the conditions that produced the problem occur.

During the interactive debugging session, use the normal Visual Studio* debugger actions to examine memory, set code breakpoints, and continue execution. Only the use of data breakpoints is not supported.

Use one of the following ways to initiate an interactive debugging session during analysis so that you see the state of your application code instead of the state of Intel Inspector analysis code:

Objective

Process Summary

Usage

Allow quick investigation of problem(s) of interest.

In a result, choose a problem(s) in the Summary window, right-click to display a context menu, then choose Debug This Problem.

Outcome: The Intel Inspector:

  • Launches a new analysis, of the same type, optimized to find the selected problem(s).

  • Halts application execution when it detects the selected problem(s) and opens a debugging session.

Typical scenario: After reviewing a problem using result data provided by the Intel Inspector, you discover you need more application state information at the time the problem occurred, such as the contents of variables. The Debug This Problem function returns you to the point of the problem, halting execution in a debugging session so you can examine memory and other state information at any point in the call stack.

Delay problem detection until a selected point in the application.

In the Visual Studio* debugger, set a code breakpoint to halt application execution prior to where you want analysis to begin. In the Intel Inspector, select the Select analysis start location with debugger radio button when configuring an analysis and start the analysis. Wait for the debugging session to open and execution to halt at the code breakpoint. Choose Debug> Continue with Inspector XE Analysis to turn on analysis and resume execution.

Outcome: Execution halts for each problem detected after you turn on analysis and resume execution. You cannot turn off analysis again.

Typical scenario: You configured the project to limit the application modules for inspection, but you need to narrow analysis focus even further. This option lets you choose an arbitrary location to turn on error detection, allowing faster execution until that point.

Tip

Because debugging in conjunction with a threading analysis significantly slows execution:

  • Use this option only if the area targeted for threading analysis has a very short execution time.

  • For best performance, use the Debug This Problem function to selectively investigate threading issues identified during a non-debug run.

Allow investigation of every detected problem.

In the Intel Inspector, select the Enable debugger when problem detected radio button when configuring an analysis.

Outcome: When you run the analysis, the Intel Inspector halts application execution when it detects the first problem and launches a debugging session. Execution halts for each detected problem when you resume execution using normal debugger commands.

Typical scenario: You want to investigate the state of the application for every problem detected.

Tip

Because of analysis speed issues, this option is not recommended when detecting data races. It is faster to use the Debug This Problem function to selectively investigate threading problems identified during a non-debug run.

Tips

  • Intel Inspector supports interactive debugging only for pure native applications. Debug options are disabled for managed and mixed (managed and native) applications.

  • Intel Inspector does not offer interactive debugging for the Detect Leaks (mi1) analysis type because memory and resource leaks are determined after an application terminates and therefore cannot be used to halt execution during analysis. However, you can perform a standard debugger attach to a process launched under this analysis type.

  • Do not recompile your application after generating a result if you plan to use the result Debug This Problem function. Intel Inspector cannot guarantee finding the same problem(s) when the binary changes; consequently, it checks for a binary change and reports a warning to prevent rerunning an analysis that may not stop at the selected problem(s).

  • When you use the Debug This Problem function, the problem list in the new result may differ from the problem list in the source result. Intel Inspector automatically adjusts the debugging session analysis to return to the selected problem(s) more quickly; however the analysis adjustments do not correspond to individual problem types. Consequently, the Intel Inspector may detect and report additional problems, but it will break only for a selected problem(s).

Inglese

Viewing all articles
Browse latest Browse all 1853

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>