Skip to content

[wasm][debugger] Hide members from classes that don't have debug information - #73982

Merged
thaystg merged 6 commits into
dotnet:mainfrom
thaystg:thays_fix_43184
Aug 16, 2022
Merged

[wasm][debugger] Hide members from classes that don't have debug information#73982
thaystg merged 6 commits into
dotnet:mainfrom
thaystg:thays_fix_43184

Conversation

@thaystg

Copy link
Copy Markdown
Member

Do not show members from classes that don't have debug information if JMC is enabled.

Fixes#43184

@thaystg
thaystg requested a review from radical as a code ownerAugust 16, 2022 00:39
@thaystg
thaystg requested a review from lewingAugust 16, 2022 00:39
@ghostghost assigned thaystgAug 16, 2022
@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @thaystg
See info in area-owners.md if you want to be subscribed.

Issue Details

Do not show members from classes that don't have debug information if JMC is enabled.

Fixes #43184

Author:thaystg
Assignees:-
Labels:

area-Debugger-mono

Milestone:-

Comment on lines +220 to +223
var typeInfo = await sdbHelper.GetTypeInfo(containerTypeId, token);
if (typeInfo.Info.IsNonUserCode && getCommandOptions.HasFlag(GetObjectCommandOptions.JustMyCode))
return fieldValues;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this be at line 215?


var typeInfo = await sdbHelper.GetTypeInfo(typeId, token);

if (typeInfo.Info.IsNonUserCode && getCommandType.HasFlag(GetObjectCommandOptions.JustMyCode))

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't this add fields for non-my-code types? Should it moved to the beginning of the loop?

System.Diagnostics.Debugger.Break();
}

public int myField;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add custom, and autogenerated properties too.

@radical

Copy link
Copy Markdown
Member

Do not show members from classes that don't have debug information if JMC is enabled.

I'm not sure I understand. Is this correct? :

  • if JMC is not enabled, then all the members of the full hierarchy should be visible
    • What can we show if debug information is not present?
    • Why remove the stuff that we can show, if JMC is not enabled?

Also, this won't completely fix #43184, because this is still not returning the non-public members in privateProperties.

@radical

Copy link
Copy Markdown
Member

Other than the comments here, and some from discussion offline, this LGTM, assuming the tests pass 👍

Comment on lines +575 to +579
var typeInfo = await sdbHelper.GetTypeInfo(typeId, token);

if (typeInfo.Info.IsNonUserCode && getCommandType.HasFlag(GetObjectCommandOptions.JustMyCode))
break;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can be right after int typeId = typeIdsIncludingParents[I];.

Comment threadsrc/mono/wasm/debugger/tests/debugger-test/debugger-test.cs Outdated

<WasmAssemblySearchPaths Include="$(MicrosoftNetCoreAppRuntimePackRidDir)native"/>
<WasmAssemblySearchPaths Include="$(MicrosoftNetCoreAppRuntimePackRidDir)lib\$(NetCoreAppCurrent)"/>
<WasmAssemblySearchPaths Include="$(OutDir)"/>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why was this needed?

thaystgand others added 2 commits August 16, 2022 00:07
Co-authored-by: Ankit Jain <radical@gmail.com>
@thaystg
thaystg merged commit 481c056 into dotnet:mainAug 16, 2022
@thaystg

Copy link
Copy Markdown
MemberAuthor

/backport to release/7.0-rc1

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/7.0-rc1: https://github.com/dotnet/runtime/actions/runs/2871012035

@ghostghost locked as resolved and limited conversation to collaborators Sep 16, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Mono WASM debugger displays private members of base class alongside other properties

3 participants

@thaystg@radical@lewing
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
[wasm][debugger] Hide members from classes that don't have debug information by thaystg · Pull Request #73982 · dotnet/runtime · GitHub
Skip to content

[wasm][debugger] Hide members from classes that don't have debug information - #73982

Merged
thaystg merged 6 commits into
dotnet:mainfrom
thaystg:thays_fix_43184
Aug 16, 2022
Merged

[wasm][debugger] Hide members from classes that don't have debug information#73982
thaystg merged 6 commits into
dotnet:mainfrom
thaystg:thays_fix_43184

Conversation

@thaystg

Copy link
Copy Markdown
Member

Do not show members from classes that don't have debug information if JMC is enabled.

Fixes#43184

@thaystg
thaystg requested a review from radical as a code ownerAugust 16, 2022 00:39
@thaystg
thaystg requested a review from lewingAugust 16, 2022 00:39
@ghostghost assigned thaystgAug 16, 2022
@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @thaystg
See info in area-owners.md if you want to be subscribed.

Issue Details

Do not show members from classes that don't have debug information if JMC is enabled.

Fixes #43184

Author:thaystg
Assignees:-
Labels:

area-Debugger-mono

Milestone:-

Comment on lines +220 to +223
var typeInfo = await sdbHelper.GetTypeInfo(containerTypeId, token);
if (typeInfo.Info.IsNonUserCode && getCommandOptions.HasFlag(GetObjectCommandOptions.JustMyCode))
return fieldValues;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this be at line 215?


var typeInfo = await sdbHelper.GetTypeInfo(typeId, token);

if (typeInfo.Info.IsNonUserCode && getCommandType.HasFlag(GetObjectCommandOptions.JustMyCode))

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't this add fields for non-my-code types? Should it moved to the beginning of the loop?

System.Diagnostics.Debugger.Break();
}

public int myField;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add custom, and autogenerated properties too.

@radical

Copy link
Copy Markdown
Member

Do not show members from classes that don't have debug information if JMC is enabled.

I'm not sure I understand. Is this correct? :

  • if JMC is not enabled, then all the members of the full hierarchy should be visible
    • What can we show if debug information is not present?
    • Why remove the stuff that we can show, if JMC is not enabled?

Also, this won't completely fix #43184, because this is still not returning the non-public members in privateProperties.

@radical

Copy link
Copy Markdown
Member

Other than the comments here, and some from discussion offline, this LGTM, assuming the tests pass 👍

Comment on lines +575 to +579
var typeInfo = await sdbHelper.GetTypeInfo(typeId, token);

if (typeInfo.Info.IsNonUserCode && getCommandType.HasFlag(GetObjectCommandOptions.JustMyCode))
break;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can be right after int typeId = typeIdsIncludingParents[I];.

Comment threadsrc/mono/wasm/debugger/tests/debugger-test/debugger-test.cs Outdated

<WasmAssemblySearchPaths Include="$(MicrosoftNetCoreAppRuntimePackRidDir)native"/>
<WasmAssemblySearchPaths Include="$(MicrosoftNetCoreAppRuntimePackRidDir)lib\$(NetCoreAppCurrent)"/>
<WasmAssemblySearchPaths Include="$(OutDir)"/>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why was this needed?

thaystgand others added 2 commits August 16, 2022 00:07
Co-authored-by: Ankit Jain <radical@gmail.com>
@thaystg
thaystg merged commit 481c056 into dotnet:mainAug 16, 2022
@thaystg

Copy link
Copy Markdown
MemberAuthor

/backport to release/7.0-rc1

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/7.0-rc1: https://github.com/dotnet/runtime/actions/runs/2871012035

@ghostghost locked as resolved and limited conversation to collaborators Sep 16, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Mono WASM debugger displays private members of base class alongside other properties

3 participants

@thaystg@radical@lewing
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [wasm][debugger] Hide members from classes that don't have debug information by thaystg · Pull Request #73982 · dotnet/runtime · GitHub
Skip to content

[wasm][debugger] Hide members from classes that don't have debug information - #73982

Merged
thaystg merged 6 commits into
dotnet:mainfrom
thaystg:thays_fix_43184
Aug 16, 2022
Merged

[wasm][debugger] Hide members from classes that don't have debug information#73982
thaystg merged 6 commits into
dotnet:mainfrom
thaystg:thays_fix_43184

Conversation

@thaystg

Copy link
Copy Markdown
Member

Do not show members from classes that don't have debug information if JMC is enabled.

Fixes#43184

@thaystg
thaystg requested a review from radical as a code ownerAugust 16, 2022 00:39
@thaystg
thaystg requested a review from lewingAugust 16, 2022 00:39
@ghostghost assigned thaystgAug 16, 2022
@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @thaystg
See info in area-owners.md if you want to be subscribed.

Issue Details

Do not show members from classes that don't have debug information if JMC is enabled.

Fixes #43184

Author:thaystg
Assignees:-
Labels:

area-Debugger-mono

Milestone:-

Comment on lines +220 to +223
var typeInfo = await sdbHelper.GetTypeInfo(containerTypeId, token);
if (typeInfo.Info.IsNonUserCode && getCommandOptions.HasFlag(GetObjectCommandOptions.JustMyCode))
return fieldValues;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this be at line 215?


var typeInfo = await sdbHelper.GetTypeInfo(typeId, token);

if (typeInfo.Info.IsNonUserCode && getCommandType.HasFlag(GetObjectCommandOptions.JustMyCode))

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't this add fields for non-my-code types? Should it moved to the beginning of the loop?

System.Diagnostics.Debugger.Break();
}

public int myField;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add custom, and autogenerated properties too.

@radical

Copy link
Copy Markdown
Member

Do not show members from classes that don't have debug information if JMC is enabled.

I'm not sure I understand. Is this correct? :

  • if JMC is not enabled, then all the members of the full hierarchy should be visible
    • What can we show if debug information is not present?
    • Why remove the stuff that we can show, if JMC is not enabled?

Also, this won't completely fix #43184, because this is still not returning the non-public members in privateProperties.

@radical

Copy link
Copy Markdown
Member

Other than the comments here, and some from discussion offline, this LGTM, assuming the tests pass 👍

Comment on lines +575 to +579
var typeInfo = await sdbHelper.GetTypeInfo(typeId, token);

if (typeInfo.Info.IsNonUserCode && getCommandType.HasFlag(GetObjectCommandOptions.JustMyCode))
break;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can be right after int typeId = typeIdsIncludingParents[I];.

Comment threadsrc/mono/wasm/debugger/tests/debugger-test/debugger-test.cs Outdated

<WasmAssemblySearchPaths Include="$(MicrosoftNetCoreAppRuntimePackRidDir)native"/>
<WasmAssemblySearchPaths Include="$(MicrosoftNetCoreAppRuntimePackRidDir)lib\$(NetCoreAppCurrent)"/>
<WasmAssemblySearchPaths Include="$(OutDir)"/>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why was this needed?

thaystgand others added 2 commits August 16, 2022 00:07
Co-authored-by: Ankit Jain <radical@gmail.com>
@thaystg
thaystg merged commit 481c056 into dotnet:mainAug 16, 2022
@thaystg

Copy link
Copy Markdown
MemberAuthor

/backport to release/7.0-rc1

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/7.0-rc1: https://github.com/dotnet/runtime/actions/runs/2871012035

@ghostghost locked as resolved and limited conversation to collaborators Sep 16, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Mono WASM debugger displays private members of base class alongside other properties

3 participants

@thaystg@radical@lewing
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [wasm][debugger] Hide members from classes that don't have debug information by thaystg · Pull Request #73982 · dotnet/runtime · GitHub
Skip to content

[wasm][debugger] Hide members from classes that don't have debug information - #73982

Merged
thaystg merged 6 commits into
dotnet:mainfrom
thaystg:thays_fix_43184
Aug 16, 2022
Merged

[wasm][debugger] Hide members from classes that don't have debug information#73982
thaystg merged 6 commits into
dotnet:mainfrom
thaystg:thays_fix_43184

Conversation

@thaystg

Copy link
Copy Markdown
Member

Do not show members from classes that don't have debug information if JMC is enabled.

Fixes#43184

@thaystg
thaystg requested a review from radical as a code ownerAugust 16, 2022 00:39
@thaystg
thaystg requested a review from lewingAugust 16, 2022 00:39
@ghostghost assigned thaystgAug 16, 2022
@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @thaystg
See info in area-owners.md if you want to be subscribed.

Issue Details

Do not show members from classes that don't have debug information if JMC is enabled.

Fixes #43184

Author:thaystg
Assignees:-
Labels:

area-Debugger-mono

Milestone:-

Comment on lines +220 to +223
var typeInfo = await sdbHelper.GetTypeInfo(containerTypeId, token);
if (typeInfo.Info.IsNonUserCode && getCommandOptions.HasFlag(GetObjectCommandOptions.JustMyCode))
return fieldValues;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this be at line 215?


var typeInfo = await sdbHelper.GetTypeInfo(typeId, token);

if (typeInfo.Info.IsNonUserCode && getCommandType.HasFlag(GetObjectCommandOptions.JustMyCode))

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't this add fields for non-my-code types? Should it moved to the beginning of the loop?

System.Diagnostics.Debugger.Break();
}

public int myField;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add custom, and autogenerated properties too.

@radical

Copy link
Copy Markdown
Member

Do not show members from classes that don't have debug information if JMC is enabled.

I'm not sure I understand. Is this correct? :

  • if JMC is not enabled, then all the members of the full hierarchy should be visible
    • What can we show if debug information is not present?
    • Why remove the stuff that we can show, if JMC is not enabled?

Also, this won't completely fix #43184, because this is still not returning the non-public members in privateProperties.

@radical

Copy link
Copy Markdown
Member

Other than the comments here, and some from discussion offline, this LGTM, assuming the tests pass 👍

Comment on lines +575 to +579
var typeInfo = await sdbHelper.GetTypeInfo(typeId, token);

if (typeInfo.Info.IsNonUserCode && getCommandType.HasFlag(GetObjectCommandOptions.JustMyCode))
break;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can be right after int typeId = typeIdsIncludingParents[I];.

Comment threadsrc/mono/wasm/debugger/tests/debugger-test/debugger-test.cs Outdated

<WasmAssemblySearchPaths Include="$(MicrosoftNetCoreAppRuntimePackRidDir)native"/>
<WasmAssemblySearchPaths Include="$(MicrosoftNetCoreAppRuntimePackRidDir)lib\$(NetCoreAppCurrent)"/>
<WasmAssemblySearchPaths Include="$(OutDir)"/>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why was this needed?

thaystgand others added 2 commits August 16, 2022 00:07
Co-authored-by: Ankit Jain <radical@gmail.com>
@thaystg
thaystg merged commit 481c056 into dotnet:mainAug 16, 2022
@thaystg

Copy link
Copy Markdown
MemberAuthor

/backport to release/7.0-rc1

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/7.0-rc1: https://github.com/dotnet/runtime/actions/runs/2871012035

@ghostghost locked as resolved and limited conversation to collaborators Sep 16, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Mono WASM debugger displays private members of base class alongside other properties

3 participants

@thaystg@radical@lewing
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' [wasm][debugger] Hide members from classes that don't have debug information by thaystg · Pull Request #73982 · dotnet/runtime · GitHub
Skip to content

[wasm][debugger] Hide members from classes that don't have debug information - #73982

Merged
thaystg merged 6 commits into
dotnet:mainfrom
thaystg:thays_fix_43184
Aug 16, 2022
Merged

[wasm][debugger] Hide members from classes that don't have debug information#73982
thaystg merged 6 commits into
dotnet:mainfrom
thaystg:thays_fix_43184

Conversation

@thaystg

Copy link
Copy Markdown
Member

Do not show members from classes that don't have debug information if JMC is enabled.

Fixes#43184

@thaystg
thaystg requested a review from radical as a code ownerAugust 16, 2022 00:39
@thaystg
thaystg requested a review from lewingAugust 16, 2022 00:39
@ghostghost assigned thaystgAug 16, 2022
@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @thaystg
See info in area-owners.md if you want to be subscribed.

Issue Details

Do not show members from classes that don't have debug information if JMC is enabled.

Fixes #43184

Author:thaystg
Assignees:-
Labels:

area-Debugger-mono

Milestone:-

Comment on lines +220 to +223
var typeInfo = await sdbHelper.GetTypeInfo(containerTypeId, token);
if (typeInfo.Info.IsNonUserCode && getCommandOptions.HasFlag(GetObjectCommandOptions.JustMyCode))
return fieldValues;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this be at line 215?


var typeInfo = await sdbHelper.GetTypeInfo(typeId, token);

if (typeInfo.Info.IsNonUserCode && getCommandType.HasFlag(GetObjectCommandOptions.JustMyCode))

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't this add fields for non-my-code types? Should it moved to the beginning of the loop?

System.Diagnostics.Debugger.Break();
}

public int myField;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add custom, and autogenerated properties too.

@radical

Copy link
Copy Markdown
Member

Do not show members from classes that don't have debug information if JMC is enabled.

I'm not sure I understand. Is this correct? :

  • if JMC is not enabled, then all the members of the full hierarchy should be visible
    • What can we show if debug information is not present?
    • Why remove the stuff that we can show, if JMC is not enabled?

Also, this won't completely fix #43184, because this is still not returning the non-public members in privateProperties.

@radical

Copy link
Copy Markdown
Member

Other than the comments here, and some from discussion offline, this LGTM, assuming the tests pass 👍

Comment on lines +575 to +579
var typeInfo = await sdbHelper.GetTypeInfo(typeId, token);

if (typeInfo.Info.IsNonUserCode && getCommandType.HasFlag(GetObjectCommandOptions.JustMyCode))
break;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can be right after int typeId = typeIdsIncludingParents[I];.

Comment threadsrc/mono/wasm/debugger/tests/debugger-test/debugger-test.cs Outdated

<WasmAssemblySearchPaths Include="$(MicrosoftNetCoreAppRuntimePackRidDir)native"/>
<WasmAssemblySearchPaths Include="$(MicrosoftNetCoreAppRuntimePackRidDir)lib\$(NetCoreAppCurrent)"/>
<WasmAssemblySearchPaths Include="$(OutDir)"/>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why was this needed?

thaystgand others added 2 commits August 16, 2022 00:07
Co-authored-by: Ankit Jain <radical@gmail.com>
@thaystg
thaystg merged commit 481c056 into dotnet:mainAug 16, 2022
@thaystg

Copy link
Copy Markdown
MemberAuthor

/backport to release/7.0-rc1

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/7.0-rc1: https://github.com/dotnet/runtime/actions/runs/2871012035

@ghostghost locked as resolved and limited conversation to collaborators Sep 16, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Mono WASM debugger displays private members of base class alongside other properties

3 participants

@thaystg@radical@lewing
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [wasm][debugger] Hide members from classes that don't have debug information by thaystg · Pull Request #73982 · dotnet/runtime · GitHub
Skip to content

[wasm][debugger] Hide members from classes that don't have debug information - #73982

Merged
thaystg merged 6 commits into
dotnet:mainfrom
thaystg:thays_fix_43184
Aug 16, 2022
Merged

[wasm][debugger] Hide members from classes that don't have debug information#73982
thaystg merged 6 commits into
dotnet:mainfrom
thaystg:thays_fix_43184

Conversation

@thaystg

Copy link
Copy Markdown
Member

Do not show members from classes that don't have debug information if JMC is enabled.

Fixes#43184

@thaystg
thaystg requested a review from radical as a code ownerAugust 16, 2022 00:39
@thaystg
thaystg requested a review from lewingAugust 16, 2022 00:39
@ghostghost assigned thaystgAug 16, 2022
@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @thaystg
See info in area-owners.md if you want to be subscribed.

Issue Details

Do not show members from classes that don't have debug information if JMC is enabled.

Fixes #43184

Author:thaystg
Assignees:-
Labels:

area-Debugger-mono

Milestone:-

Comment on lines +220 to +223
var typeInfo = await sdbHelper.GetTypeInfo(containerTypeId, token);
if (typeInfo.Info.IsNonUserCode && getCommandOptions.HasFlag(GetObjectCommandOptions.JustMyCode))
return fieldValues;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this be at line 215?


var typeInfo = await sdbHelper.GetTypeInfo(typeId, token);

if (typeInfo.Info.IsNonUserCode && getCommandType.HasFlag(GetObjectCommandOptions.JustMyCode))

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't this add fields for non-my-code types? Should it moved to the beginning of the loop?

System.Diagnostics.Debugger.Break();
}

public int myField;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add custom, and autogenerated properties too.

@radical

Copy link
Copy Markdown
Member

Do not show members from classes that don't have debug information if JMC is enabled.

I'm not sure I understand. Is this correct? :

  • if JMC is not enabled, then all the members of the full hierarchy should be visible
    • What can we show if debug information is not present?
    • Why remove the stuff that we can show, if JMC is not enabled?

Also, this won't completely fix #43184, because this is still not returning the non-public members in privateProperties.

@radical

Copy link
Copy Markdown
Member

Other than the comments here, and some from discussion offline, this LGTM, assuming the tests pass 👍

Comment on lines +575 to +579
var typeInfo = await sdbHelper.GetTypeInfo(typeId, token);

if (typeInfo.Info.IsNonUserCode && getCommandType.HasFlag(GetObjectCommandOptions.JustMyCode))
break;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can be right after int typeId = typeIdsIncludingParents[I];.

Comment threadsrc/mono/wasm/debugger/tests/debugger-test/debugger-test.cs Outdated

<WasmAssemblySearchPaths Include="$(MicrosoftNetCoreAppRuntimePackRidDir)native"/>
<WasmAssemblySearchPaths Include="$(MicrosoftNetCoreAppRuntimePackRidDir)lib\$(NetCoreAppCurrent)"/>
<WasmAssemblySearchPaths Include="$(OutDir)"/>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why was this needed?

thaystgand others added 2 commits August 16, 2022 00:07
Co-authored-by: Ankit Jain <radical@gmail.com>
@thaystg
thaystg merged commit 481c056 into dotnet:mainAug 16, 2022
@thaystg

Copy link
Copy Markdown
MemberAuthor

/backport to release/7.0-rc1

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/7.0-rc1: https://github.com/dotnet/runtime/actions/runs/2871012035

@ghostghost locked as resolved and limited conversation to collaborators Sep 16, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Mono WASM debugger displays private members of base class alongside other properties

3 participants

@thaystg@radical@lewing
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [wasm][debugger] Hide members from classes that don't have debug information by thaystg · Pull Request #73982 · dotnet/runtime · GitHub
Skip to content

[wasm][debugger] Hide members from classes that don't have debug information - #73982

Merged
thaystg merged 6 commits into
dotnet:mainfrom
thaystg:thays_fix_43184
Aug 16, 2022
Merged

[wasm][debugger] Hide members from classes that don't have debug information#73982
thaystg merged 6 commits into
dotnet:mainfrom
thaystg:thays_fix_43184

Conversation

@thaystg

Copy link
Copy Markdown
Member

Do not show members from classes that don't have debug information if JMC is enabled.

Fixes#43184

@thaystg
thaystg requested a review from radical as a code ownerAugust 16, 2022 00:39
@thaystg
thaystg requested a review from lewingAugust 16, 2022 00:39
@ghostghost assigned thaystgAug 16, 2022
@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @thaystg
See info in area-owners.md if you want to be subscribed.

Issue Details

Do not show members from classes that don't have debug information if JMC is enabled.

Fixes #43184

Author:thaystg
Assignees:-
Labels:

area-Debugger-mono

Milestone:-

Comment on lines +220 to +223
var typeInfo = await sdbHelper.GetTypeInfo(containerTypeId, token);
if (typeInfo.Info.IsNonUserCode && getCommandOptions.HasFlag(GetObjectCommandOptions.JustMyCode))
return fieldValues;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this be at line 215?


var typeInfo = await sdbHelper.GetTypeInfo(typeId, token);

if (typeInfo.Info.IsNonUserCode && getCommandType.HasFlag(GetObjectCommandOptions.JustMyCode))

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't this add fields for non-my-code types? Should it moved to the beginning of the loop?

System.Diagnostics.Debugger.Break();
}

public int myField;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add custom, and autogenerated properties too.

@radical

Copy link
Copy Markdown
Member

Do not show members from classes that don't have debug information if JMC is enabled.

I'm not sure I understand. Is this correct? :

  • if JMC is not enabled, then all the members of the full hierarchy should be visible
    • What can we show if debug information is not present?
    • Why remove the stuff that we can show, if JMC is not enabled?

Also, this won't completely fix #43184, because this is still not returning the non-public members in privateProperties.

@radical

Copy link
Copy Markdown
Member

Other than the comments here, and some from discussion offline, this LGTM, assuming the tests pass 👍

Comment on lines +575 to +579
var typeInfo = await sdbHelper.GetTypeInfo(typeId, token);

if (typeInfo.Info.IsNonUserCode && getCommandType.HasFlag(GetObjectCommandOptions.JustMyCode))
break;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can be right after int typeId = typeIdsIncludingParents[I];.

Comment threadsrc/mono/wasm/debugger/tests/debugger-test/debugger-test.cs Outdated

<WasmAssemblySearchPaths Include="$(MicrosoftNetCoreAppRuntimePackRidDir)native"/>
<WasmAssemblySearchPaths Include="$(MicrosoftNetCoreAppRuntimePackRidDir)lib\$(NetCoreAppCurrent)"/>
<WasmAssemblySearchPaths Include="$(OutDir)"/>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why was this needed?

thaystgand others added 2 commits August 16, 2022 00:07
Co-authored-by: Ankit Jain <radical@gmail.com>
@thaystg
thaystg merged commit 481c056 into dotnet:mainAug 16, 2022
@thaystg

Copy link
Copy Markdown
MemberAuthor

/backport to release/7.0-rc1

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/7.0-rc1: https://github.com/dotnet/runtime/actions/runs/2871012035

@ghostghost locked as resolved and limited conversation to collaborators Sep 16, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Mono WASM debugger displays private members of base class alongside other properties

3 participants

@thaystg@radical@lewing
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); [wasm][debugger] Hide members from classes that don't have debug information by thaystg · Pull Request #73982 · dotnet/runtime · GitHub
Skip to content

[wasm][debugger] Hide members from classes that don't have debug information - #73982

Merged
thaystg merged 6 commits into
dotnet:mainfrom
thaystg:thays_fix_43184
Aug 16, 2022
Merged

[wasm][debugger] Hide members from classes that don't have debug information#73982
thaystg merged 6 commits into
dotnet:mainfrom
thaystg:thays_fix_43184

Conversation

@thaystg

Copy link
Copy Markdown
Member

Do not show members from classes that don't have debug information if JMC is enabled.

Fixes#43184

@thaystg
thaystg requested a review from radical as a code ownerAugust 16, 2022 00:39
@thaystg
thaystg requested a review from lewingAugust 16, 2022 00:39
@ghostghost assigned thaystgAug 16, 2022
@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @thaystg
See info in area-owners.md if you want to be subscribed.

Issue Details

Do not show members from classes that don't have debug information if JMC is enabled.

Fixes #43184

Author:thaystg
Assignees:-
Labels:

area-Debugger-mono

Milestone:-

Comment on lines +220 to +223
var typeInfo = await sdbHelper.GetTypeInfo(containerTypeId, token);
if (typeInfo.Info.IsNonUserCode && getCommandOptions.HasFlag(GetObjectCommandOptions.JustMyCode))
return fieldValues;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this be at line 215?


var typeInfo = await sdbHelper.GetTypeInfo(typeId, token);

if (typeInfo.Info.IsNonUserCode && getCommandType.HasFlag(GetObjectCommandOptions.JustMyCode))

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't this add fields for non-my-code types? Should it moved to the beginning of the loop?

System.Diagnostics.Debugger.Break();
}

public int myField;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add custom, and autogenerated properties too.

@radical

Copy link
Copy Markdown
Member

Do not show members from classes that don't have debug information if JMC is enabled.

I'm not sure I understand. Is this correct? :

  • if JMC is not enabled, then all the members of the full hierarchy should be visible
    • What can we show if debug information is not present?
    • Why remove the stuff that we can show, if JMC is not enabled?

Also, this won't completely fix #43184, because this is still not returning the non-public members in privateProperties.

@radical

Copy link
Copy Markdown
Member

Other than the comments here, and some from discussion offline, this LGTM, assuming the tests pass 👍

Comment on lines +575 to +579
var typeInfo = await sdbHelper.GetTypeInfo(typeId, token);

if (typeInfo.Info.IsNonUserCode && getCommandType.HasFlag(GetObjectCommandOptions.JustMyCode))
break;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can be right after int typeId = typeIdsIncludingParents[I];.

Comment threadsrc/mono/wasm/debugger/tests/debugger-test/debugger-test.cs Outdated

<WasmAssemblySearchPaths Include="$(MicrosoftNetCoreAppRuntimePackRidDir)native"/>
<WasmAssemblySearchPaths Include="$(MicrosoftNetCoreAppRuntimePackRidDir)lib\$(NetCoreAppCurrent)"/>
<WasmAssemblySearchPaths Include="$(OutDir)"/>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why was this needed?

thaystgand others added 2 commits August 16, 2022 00:07
Co-authored-by: Ankit Jain <radical@gmail.com>
@thaystg
thaystg merged commit 481c056 into dotnet:mainAug 16, 2022
@thaystg

Copy link
Copy Markdown
MemberAuthor

/backport to release/7.0-rc1

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/7.0-rc1: https://github.com/dotnet/runtime/actions/runs/2871012035

@ghostghost locked as resolved and limited conversation to collaborators Sep 16, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Mono WASM debugger displays private members of base class alongside other properties

3 participants

@thaystg@radical@lewing