<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
    <head>  
        <title>NetBeans IDE - Debugger and Profiler</title>
        <meta http-equiv="content-language" content="en">
        <meta name="description" content="DESCRIPTION HERE">
        <link rel="stylesheet" type="text/css" href="../../features.css">
        <link rel="stylesheet" type="text/css" href="/images_www/js/colorbox/colorbox.css">
    </head>
    <body>
        <script type="text/javascript" src="/images_www/js/colorbox/jquery.colorbox-min.js"></script>

        <script type="text/javascript">
            $(document).ready(function() {
                $('a.cbox').colorbox({rel: 'cbox', opacity: 0.7});
            });
        </script>
        <div style="margin:10px 20px 0px 0px;">
            <h1>Debugger and Profiler</h1>
            <p class="xintro">
                <a href="../../images_www/v7/1/screenshots/debugger.png"><img
                        alt="NetBeans Debugger screenshot"
                        src="../../images_www/v7/1/screenshots/debugger-cut.png" width="649"
                        height="196"><span
                        class="font-11"><br>
                        Click image for fullscreen preview</span></a>
            </p>
            <p class="intro">
                To identify and solve problems in your applications, such as deadlocks and memory leaks,
                NetBeans IDE provides a feature rich debugger and profiler.
            </p>
            <div class="line">&nbsp;</div>

            <!-- right text section start -->
            <a name="o2"></a>
            <span class="overview-left" id="im2"><a href="../../images_www/v7/3/features/debugger.png" class="cbox" title="Maven"><img src="../../images_www/v7/3/features/debugger-cut.png" width="320" alt="Maven" /></a></span>
            <h2>Debugger</h2>
            <p>The NetBeans Debugger lets you place breakpoints in 
                your source code, add field watches, step through your code, 
                run into methods, take snapshots and monitor execution as it 
                occurs. You can also attach the debugger to an already running process.</p>
            <p>The IDE includes a visual debugger to let you take GUI snapshots and visually 
                explore the GUI of JavaFX and Swing applications. It lets you view component properties,
                the hierarchy of components in the container, and locate the source code 
                of components. You can use the visual debugger to easily add listeners to
                GUI actions without requiring you to search through the source code.</p>
            <a href="../../kb/docs/java/debug-multithreaded.html" class="arr-link">
                Debugging Multi-threaded Applications in NetBeans IDE</a>
            <br/><a href="../../kb/docs/java/debug-visual.html" class="arr-link">
                Using the Visual Debugger in NetBeans IDE</a>
            <div class="line">&nbsp;</div>
            <!-- right text section end -->

            <!-- left text section start -->
            <a name="o3"></a>
            <span class="overview-right" id="im3"><a href="../../images_www/v7/3/features/profiler.png" class="cbox" title="Ant"><img src="../../images_www/v7/3/features/profiler-cut.png" width="320" alt="Ant" /></a></span>
            <h2>Profiler</h2>
            <p>The NetBeans Profiler provides expert assistance for 
                optimizing your application's speed and memory usage,
                and makes it easier to build reliable and scalable Java SE, 
                JavaFX and Java EE applications.</p>
            <p>Select from several common profiling tasks, such as 
                standard CPU or memory profiling, or simple monitoring. 
                The options have been preset to default values by experts;
                you can customize settings for a specific application. </p>
            <a href="../../kb/docs/java/profiler-intro.html" class="arr-link">
                Introduction to Profiling Java Applications in NetBeans IDE</a>
            <div class="line">&nbsp;</div>
            <!-- left text section end -->

            <table>
                <tr>
                    <td class="valign-top"><h2>Multi-Threaded Debugging</h2></td>
                    <!--<td></td>-->
                    <td class="valign-top"><h2>Heap Walker</h2></td>
                    <!--<td></td>-->
                    <td class="valign-top"><h2>Generational Count</h2></td>
                </tr>
                <tr>
                    <td class="valign-top"  style="width:33%;padding-right:10px;">
                        <p> 
                            <span class="overview-centre" id="im8"><img
                                    src="../../images_www/v7/3/features/debugger-thread-cut.png" class="box "
                                    alt="Heap Walker"/></span><br/>
                            To switch threads, use the Current 
                            Thread Chooser or access the threads 
                            navigation directly from the editor 
                            margin. You can check the state of the
                            current session's threads
                            and inspect the call stack and locale 
                            variables of the current thread. 
                        </p>
                    </td>
                    <td class="valign-top" style="width:33%;padding-right:10px;"> 
                        <p>
                             <span class="overview-centre" id="im8"><img
                                    src="../../images_www/v7/3/features/debugger-heap-cut.png" class="box "
                                    alt="Heap Walker"/></span><br/>
                            Use the Heap Walker to evaluate the
                            Java heap contents and to identify 
                            unnecessary references that cause memory 
                            leaks. You can browse classes and instances 
                            of classes on the heap, fields of each instance 
                            or class, and references to each instance. 
                            <br/><br/>
                        </p>
                    </td>
                    <td class="valign-top"  style="width:33%">
                        <p>
                            <span class="overview-centre" id="im8"><img
                                    src="../../images_www/v7/3/features/debugger-generational-cut.png" class="box "
                                    alt="Generational Count"/></span><br/> 
                            Generational counts allow you to 
                            identify objects that are surviving 
                            all attempts to collect them. This 
                            information can be used to find long
                            lived and leaking objects.</p>
                        <a href="../../kb/articles/nb-profiler-uncoveringleaks_pt1.html" class="arr-link">
                            Uncovering Memory Leaks Using NetBeans Profiler</a>
                        <br/><br/>
                    </td>
                </tr>
            </table>

            <h2>See Also</h2>
            <ul class="bigger">
                <li><a href="/community/releases/81/index.html">NetBeans IDE 8.1  Release Page</a> for a list of specific features in the latest stable release.</li>
                <li><a href="../../kb/trails/java-se.html">General Java Development Learning Trail</a> for tutorials that will help you get started.</li>
            </ul>

        </div>
    </body>
</html>
