From eda5bc26f44ee9a6f83dcf8c91f17296d7fc509d Mon Sep 17 00:00:00 2001
From: Nao Pross <np@0hm.ch>
Date: Mon, 12 Feb 2024 14:52:43 +0100
Subject: Move into version control

---
 src/imgui/misc/debuggers/README.txt          | 16 ++++++++
 src/imgui/misc/debuggers/imgui.gdb           | 12 ++++++
 src/imgui/misc/debuggers/imgui.natstepfilter | 31 +++++++++++++++
 src/imgui/misc/debuggers/imgui.natvis        | 58 ++++++++++++++++++++++++++++
 4 files changed, 117 insertions(+)
 create mode 100644 src/imgui/misc/debuggers/README.txt
 create mode 100644 src/imgui/misc/debuggers/imgui.gdb
 create mode 100644 src/imgui/misc/debuggers/imgui.natstepfilter
 create mode 100644 src/imgui/misc/debuggers/imgui.natvis

(limited to 'src/imgui/misc/debuggers')

diff --git a/src/imgui/misc/debuggers/README.txt b/src/imgui/misc/debuggers/README.txt
new file mode 100644
index 0000000..3f4ba83
--- /dev/null
+++ b/src/imgui/misc/debuggers/README.txt
@@ -0,0 +1,16 @@
+
+HELPER FILES FOR POPULAR DEBUGGERS
+
+imgui.gdb
+    GDB: disable stepping into trivial functions.
+    (read comments inside file for details)
+
+imgui.natstepfilter
+    Visual Studio Debugger: disable stepping into trivial functions.
+    (read comments inside file for details)
+
+imgui.natvis
+    Visual Studio Debugger: describe Dear ImGui types for better display.
+    With this, types like ImVector<> will be displayed nicely in the debugger.
+    (read comments inside file for details)
+
diff --git a/src/imgui/misc/debuggers/imgui.gdb b/src/imgui/misc/debuggers/imgui.gdb
new file mode 100644
index 0000000..000ff6e
--- /dev/null
+++ b/src/imgui/misc/debuggers/imgui.gdb
@@ -0,0 +1,12 @@
+# GDB configuration to aid debugging experience
+
+# To enable these customizations edit $HOME/.gdbinit (or ./.gdbinit if local gdbinit is enabled) and add:
+#   add-auto-load-safe-path /path/to/imgui.gdb
+#   source /path/to/imgui.gdb
+#
+# More Information at:
+#   * https://sourceware.org/gdb/current/onlinedocs/gdb/gdbinit-man.html
+#   * https://sourceware.org/gdb/current/onlinedocs/gdb/Init-File-in-the-Current-Directory.html#Init-File-in-the-Current-Directory
+
+# Disable stepping into trivial functions
+skip -rfunction Im(Vec2|Vec4|Strv|Vector|Span)::.+
diff --git a/src/imgui/misc/debuggers/imgui.natstepfilter b/src/imgui/misc/debuggers/imgui.natstepfilter
new file mode 100644
index 0000000..6825c93
--- /dev/null
+++ b/src/imgui/misc/debuggers/imgui.natstepfilter
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+.natstepfilter file for Visual Studio debugger.
+Purpose: instruct debugger to skip some functions when using StepInto (F11)
+
+Since Visual Studio 2022 version 17.6 Preview 2 (currently available as a "Preview" build on March 14, 2023)
+It is possible to add the .natstepfilter file to your project file and it will automatically be used.
+(https://developercommunity.visualstudio.com/t/allow-natstepfilter-and-natjmc-to-be-included-as-p/561718)
+
+For older Visual Studio version prior to 2022 17.6 Preview 2:
+* copy in %USERPROFILE%\Documents\Visual Studio XXXX\Visualizers (current user)
+* or copy in %VsInstallDirectory%\Common7\Packages\Debugger\Visualizers (all users)
+If you have multiple VS version installed, the version that matters is the one you are using the IDE/debugger
+of (not the compiling toolset). This is supported since Visual Studio 2012.
+
+More information at: https://docs.microsoft.com/en-us/visualstudio/debugger/just-my-code?view=vs-2019#BKMK_C___Just_My_Code
+-->
+
+<StepFilter xmlns="http://schemas.microsoft.com/vstudio/debugger/natstepfilter/2010">
+
+    <!-- Disable stepping into trivial functions -->
+    <Function>
+        <Name>(ImVec2|ImVec4|ImStrv)::.+</Name>
+        <Action>NoStepInto</Action>
+    </Function>
+    <Function>
+        <Name>(ImVector|ImSpan).*::operator.+</Name>
+        <Action>NoStepInto</Action>
+    </Function>
+
+</StepFilter>
diff --git a/src/imgui/misc/debuggers/imgui.natvis b/src/imgui/misc/debuggers/imgui.natvis
new file mode 100644
index 0000000..13b6360
--- /dev/null
+++ b/src/imgui/misc/debuggers/imgui.natvis
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+.natvis file for Visual Studio debugger.
+Purpose: provide nicer views on data types used by Dear ImGui.
+
+To enable:
+* include file in your VS project (most recommended: not intrusive and always kept up to date!)
+* or copy in %USERPROFILE%\Documents\Visual Studio XXXX\Visualizers (current user)
+* or copy in %VsInstallDirectory%\Common7\Packages\Debugger\Visualizers (all users)
+
+More information at: https://docs.microsoft.com/en-us/visualstudio/debugger/create-custom-views-of-native-objects?view=vs-2019
+-->
+
+<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
+
+<Type Name="ImVector&lt;*&gt;">
+  <DisplayString>{{Size={Size} Capacity={Capacity}}}</DisplayString>
+  <Expand>
+    <ArrayItems>
+      <Size>Size</Size>
+      <ValuePointer>Data</ValuePointer>
+    </ArrayItems>
+  </Expand>
+</Type>
+
+<Type Name="ImSpan&lt;*&gt;">
+  <DisplayString>{{Size={DataEnd-Data} }}</DisplayString>
+  <Expand>
+    <ArrayItems>
+      <Size>DataEnd-Data</Size>
+      <ValuePointer>Data</ValuePointer>
+    </ArrayItems>
+  </Expand>
+</Type>
+
+<Type Name="ImVec2">
+  <DisplayString>{{x={x,g} y={y,g}}}</DisplayString>
+</Type>
+
+<Type Name="ImVec4">
+  <DisplayString>{{x={x,g} y={y,g} z={z,g} w={w,g}}}</DisplayString>
+</Type>
+
+<Type Name="ImRect">
+  <DisplayString>{{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}</DisplayString>
+  <Expand>
+    <Item Name="Min">Min</Item>
+    <Item Name="Max">Max</Item>
+    <Item Name="[Width]">Max.x - Min.x</Item>
+    <Item Name="[Height]">Max.y - Min.y</Item>
+  </Expand>
+</Type>
+
+<Type Name="ImGuiWindow">
+  <DisplayString>{{Name {Name,s} Active {(Active||WasActive)?1:0,d} Child {(Flags &amp; 0x01000000)?1:0,d} Popup {(Flags &amp; 0x04000000)?1:0,d} Hidden {(Hidden)?1:0,d}}</DisplayString>
+</Type>
+
+</AutoVisualizer>
-- 
cgit v1.2.1