<p dir="auto">Currently, VSCode doesn't show any kind of graphical feedback of where function breakpoints have bound to.</p>
<p dir="auto">Visual Studio and other IDEs show some graphical feedback to show the function breakpoint has bound to some specific locations / the debugger is in break mode at a particular line because of a function breakpoint.<br>
It would be great for VSCode to support this in the case when debug adapters report the line(s) where the function breakpoint has been bound.</p>
<p dir="auto">This helps users determine that</p>
<ul dir="auto">
<li>there is a breakpoint that will be hit at some locations</li>
<li>a breakpoint has been hit when stopped at a function breakpoint.</li>
</ul>
<p dir="auto"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/weinand/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/weinand">@weinand</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/isidorn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/isidorn">@isidorn</a></p>
<p dir="auto">Testing <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="132382915" data-permission-text="Title is private" data-url="https://github.com/microsoft/vscode/issues/2832" data-hovercard-type="issue" data-hovercard-url="/microsoft/vscode/issues/2832/hovercard" href="https://github.com/microsoft/vscode/issues/2832">#2832</a></p>
<p dir="auto">I have a breakpoint on <code class="notranslate">if (_key === key) {</code> and I've added a function breakpoint for <code class="notranslate">console.log</code>. The breakpoint for <code class="notranslate">if (_key === key) {</code> is hit, but the console.log near the end is not hit.</p>
<p dir="auto">I tried clicking <code class="notranslate">Reapply all breakpoints</code> which did not help in this case.</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="function Safe(_key) {
    var _locked = true;
    var _value = null;

    this.unlock = function(key) {
        if (_key === key) {
            _locked = false;
        }
        return;
    };

    this.lock = function() {
        _locked = true;
    };

    Object.defineProperty(this, 'value', {
        get: function() {
            if (_locked) {
                console.log('thief detected!');
                process.exit(0);
            }
            return _value;
        },

        set: function(value) {
            if (_locked) {
                console.log('thief detected!');
                process.exit(0);
            }
            _value = value;
        }
    });
}

var safe = new Safe('mySecretPassword');

safe.unlock('mySecretPassword');
safe.value = 3;
console.log(safe.value);
safe.lock();

"><pre class="notranslate"><span class="pl-k">function</span> <span class="pl-v">Safe</span><span class="pl-kos">(</span><span class="pl-s1">_key</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
    <span class="pl-k">var</span> <span class="pl-s1">_locked</span> <span class="pl-c1">=</span> <span class="pl-c1">true</span><span class="pl-kos">;</span>
    <span class="pl-k">var</span> <span class="pl-s1">_value</span> <span class="pl-c1">=</span> <span class="pl-c1">null</span><span class="pl-kos">;</span>

    <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-en">unlock</span> <span class="pl-c1">=</span> <span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-s1">key</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
        <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">_key</span> <span class="pl-c1">===</span> <span class="pl-s1">key</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
            <span class="pl-s1">_locked</span> <span class="pl-c1">=</span> <span class="pl-c1">false</span><span class="pl-kos">;</span>
        <span class="pl-kos">}</span>
        <span class="pl-k">return</span><span class="pl-kos">;</span>
    <span class="pl-kos">}</span><span class="pl-kos">;</span>

    <span class="pl-smi">this</span><span class="pl-kos">.</span><span class="pl-en">lock</span> <span class="pl-c1">=</span> <span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
        <span class="pl-s1">_locked</span> <span class="pl-c1">=</span> <span class="pl-c1">true</span><span class="pl-kos">;</span>
    <span class="pl-kos">}</span><span class="pl-kos">;</span>

    <span class="pl-v">Object</span><span class="pl-kos">.</span><span class="pl-en">defineProperty</span><span class="pl-kos">(</span><span class="pl-smi">this</span><span class="pl-kos">,</span> <span class="pl-s">'value'</span><span class="pl-kos">,</span> <span class="pl-kos">{</span>
        <span class="pl-en">get</span>: <span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
            <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">_locked</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
                <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">'thief detected!'</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
                <span class="pl-s1">process</span><span class="pl-kos">.</span><span class="pl-en">exit</span><span class="pl-kos">(</span><span class="pl-c1">0</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
            <span class="pl-kos">}</span>
            <span class="pl-k">return</span> <span class="pl-s1">_value</span><span class="pl-kos">;</span>
        <span class="pl-kos">}</span><span class="pl-kos">,</span>

        <span class="pl-en">set</span>: <span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-s1">value</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
            <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">_locked</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
                <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s">'thief detected!'</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
                <span class="pl-s1">process</span><span class="pl-kos">.</span><span class="pl-en">exit</span><span class="pl-kos">(</span><span class="pl-c1">0</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
            <span class="pl-kos">}</span>
            <span class="pl-s1">_value</span> <span class="pl-c1">=</span> <span class="pl-s1">value</span><span class="pl-kos">;</span>
        <span class="pl-kos">}</span>
    <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>

<span class="pl-k">var</span> <span class="pl-s1">safe</span> <span class="pl-c1">=</span> <span class="pl-k">new</span> <span class="pl-v">Safe</span><span class="pl-kos">(</span><span class="pl-s">'mySecretPassword'</span><span class="pl-kos">)</span><span class="pl-kos">;</span>

<span class="pl-s1">safe</span><span class="pl-kos">.</span><span class="pl-en">unlock</span><span class="pl-kos">(</span><span class="pl-s">'mySecretPassword'</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-s1">safe</span><span class="pl-kos">.</span><span class="pl-c1">value</span> <span class="pl-c1">=</span> <span class="pl-c1">3</span><span class="pl-kos">;</span>
<span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">safe</span><span class="pl-kos">.</span><span class="pl-c1">value</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-s1">safe</span><span class="pl-kos">.</span><span class="pl-en">lock</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
</pre></div>