Fix stack trace parsing for error messages containing "in"#69
Closed
scomitch wants to merge 139 commits intoFacepunch:masterfrom
Closed
Fix stack trace parsing for error messages containing "in"#69scomitch wants to merge 139 commits intoFacepunch:masterfrom
scomitch wants to merge 139 commits intoFacepunch:masterfrom
Conversation
This commit imports the C# engine code and game files, excluding C++ source code. [Source-Commit: ceb3d758046e50faa6258bc3b658a30c97743268]
…acepunch#3432) Resolves Facepunch/sbox-issues#9604
…cene.PhysicsWorld (Facepunch#3433) Resolves Facepunch/sbox-issues#9598 (Fixes issues where traces in the editor can throw NREs after exiting play mode)
* Skip menu editor code outside of the menu project * Asset Browser: skip menu project assets in Everything and Recents
Add slight delay because windows may still briefly hold a lock on some files even after the process exited
…een different commits
* Refactor sync script Use single filter repo call Use globs instead of python madness Ensure shallow clone is clean before working on it * Add dry run option to sync script * Add public gitattributes
* Fix leaky swapchain when resizing on game mode and dispose of handle after usage VideoRecorder would get a strong handle copy of the swapchain every frame and retain it, causing native to fail to shutdown the copies from it Made usage of getting native swapchain consistent on managed on other stuff, doing it like this ensures GC properly disposes of the strong handles even not disposing explicitly Remove now unused ScreenRecorder.def and ScreenshotService.def There are still optimizations to swapchain I'd like to send on another commit, game is allocating way more swapchains than needed even without the leak, has two completely different paths depending if you are MSAA or not, this can all be much simpler https://files.facepunch.com/sampavlovic/1b1811b1/EjDyxbTahs.png * Remove NativeLayerRenderTarget, was unused and fucked * Keep it as an ITexture/HRenderTextureStrong in managed so we avoid IDisposable, ReadTextureAsync with ITexture
…h#3449) * Support instanced tint on Blendable and Material::From( i ) Blendable supports vertex tint color, but was initially intended for world geometry so there was no point in working with instance color, now works fine https://files.facepunch.com/sampavlovic/1b2611b1/sbox-dev_qkWlvBOXW8.png * Build shaders
* More robust downloading of artifacts Don't download to a temp file first Try to retry download up to 3 times, if it fails Fail Bootstrap if any download fails * Fix contentbuilder and shadercompiler not forwarding to stdout
…eleted Move filter implementation to python so we have more flexibility when implementing filters. Make sure deleted files are properly filtered by evaluating globs in the filter itself not before. Make sure deleted LFS files are accounted for by scanning the history of the shallow clone for delete/changed lfs files. Whitelist some additional shaders.
* Fix terrain seams and optimize Overlap LODs by one step to fix holes in LOD transitions Reuse vertices that exist on same key when building diamond square https://files.facepunch.com/sampavlovic/1b2411b1/8mb.video-eW2-tNb22a60.mp4 * Add NoTile class and make terrain use it https://files.facepunch.com/sampavlovic/1b2411b1/sbox-dev_R1FwUmLhvu.mp4 https://files.facepunch.com/sampavlovic/1b2411b1/sbox-dev_YhKyIwvhve.mp4 * Sure why not Mr. Robot
This reverts commit dd44dc6.
* SceneEditorSession: make game vs editor scenes more distinct, Scene is whichever is currently active * Route prefab update, model reload etc events to both scenes if needed * SceneTree update checking a bit cleaner * Bring back GameEditorSessions instead, so undo, selection etc can all be linked 1:1 with scenes again * tweak and tidy
…llscreening at a low resolution preset (Facepunch#3457)
…e scene (Facepunch#3456) Fixes Facepunch/sbox-issues#9567
* Make MSAA setting work on editor SceneRenderingWidgets MSAA settings never worked with editor viewport, only on game tab, now with playmode it always takes highest MSAA value from hardware regardless of what Two things from this PR: * Pass current engine MSAA setting when creating SceneRenderingWidget swapchain * Add callback when video settings are changed, recreate swapchain when so Replicates fine for all SceneRenderingWidgets, applies instantly https://files.facepunch.com/sampavlovic/1b0311b1/sbox-dev_bjEMrrYe71.mp4 * Push RenderMultisampleType_t nMSAAAmount on interop
…nch#3465) Co-authored-by: Kicks <nolandimensions@gmail.com>
* Fix debug overlay text not rendering * Moved transform init out of native block and improved comment for clarity --------- Co-authored-by: Andy <10728824+andy013@users.noreply.github.com>
… properties on the main scene (Facepunch#3555)
Terrain_SampleSeamlessUV now additionally returns a 2x2 rotation matrix which can be used to transform vectors and other data if necessary. This also adds a function overload `Terrain_SampleSeamlessUV( float2 uv )` for cases when you don't need a rotation matrix. This will avoid breaking any shaders that rely on old implementation of this function
Previous implementation of seamless UV was sampling tangent normal map 'as is', without transforming vectors to be inline with the UV rotation angle - which resulted into NdotL shading errors. This is now corrected and tangent vector accounts for UV rotation.
Contributor
|
Makes sense, I'll see if it's feasible to add tests for this |
Metapyziks
requested changes
Dec 5, 2025
Contributor
Metapyziks
left a comment
There was a problem hiding this comment.
Let's add some tests in Sandbox.Test/Editor/StackTrace.cs like this:
using System.Reflection;
using System.Text.RegularExpressions;
using Editor;
namespace TestEditor;
[TestClass]
public class StackTraceTests
{
[TestMethod]
[DataRow( @"at Example.Foo() in C:\sbox\Source.cs:line 123", true )]
[DataRow( @"cat Example.Foo() in C:\sbox\Source.cs:line 123", false )]
[DataRow( @"at Error in something in C:\sbox\Source.cs:line 123", false )]
public void DefaultStackLine( string line, bool expectMatch )
{
var isMatch = GetDefaultStackLineHandlerRegex().Match( line );
Assert.AreEqual( expectMatch, isMatch.Success );
}
private Regex GetDefaultStackLineHandlerRegex()
{
var method = typeof( StackTraceProperty ).GetMethod( nameof( StackTraceProperty.DefaultStackLineHandler ), BindingFlags.Static | BindingFlags.Public )!;
return new Regex( method.GetCustomAttribute<StackLineHandlerAttribute>()!.Regex );
}
}Categorizes PostProcessVolume, Terrain, and MoviePlayer.
…eo changed (Facepunch#3562) Recreating it works fine on Intel GPU, no issues on validation but didnt work on other cards, there is a better way to do this from native without dangling around Fixes https://github.com/Facepunch/sbox-issues/issues/9675
- Now supports drawing on a BaseLayer and OverlayLayer - Terrain Tools displays a material palette in a sidebar - Added C# API to sample terrain material at a given position - Can now import multiple splatmaps at once mapping to texture indices ( [0, 3], [4, 7], etc.) https://files.facepunch.com/antopilo/1b0511b1/sbox-dev_An6nbxpqe3.mp4
daf8fbd to
f429287
Compare
a9e69f8 to
780d9fa
Compare
780d9fa to
bf15e58
Compare
Author
|
Will get the build passed after this weekend, traveling and using a hellfire that is the macbook so wont be fixed until i get home |
Contributor
|
No worries, thanks for your help! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Clicking on certain compile errors in the console fails with "Couldn't resolve relative path" when trying to open them in the editor.
Cause
Non-greedy matching issue, so any error message with the word "in" in it, breaks the flow and parses the wrong path when going to open the editor.
Fix
Update the regex to actually require the path to be absolute.
Screenshots
(Before fix)

(After fix)
