diff --git a/BurnOutSharp.Wrappers/PortableExecutable.cs b/BurnOutSharp.Wrappers/PortableExecutable.cs
index b76305e0..f104e90f 100644
--- a/BurnOutSharp.Wrappers/PortableExecutable.cs
+++ b/BurnOutSharp.Wrappers/PortableExecutable.cs
@@ -577,6 +577,31 @@ namespace BurnOutSharp.Wrappers
}
}
+ ///
+ /// Dictionary of debug data
+ ///
+ public Dictionary DebugData
+ {
+ get
+ {
+ lock (_sourceDataLock)
+ {
+ // Use the cached data if possible
+ if (_debugData != null && _debugData.Count != 0)
+ return _debugData;
+
+ // If we have no resource table, just return
+ if (DebugTable?.DebugDirectoryTable == null
+ || DebugTable.DebugDirectoryTable.Length == 0)
+ return null;
+
+ // Otherwise, build and return the cached dictionary
+ ParseDebugTable();
+ return _debugData;
+ }
+ }
+ }
+
///
/// Dictionary of resource data
///
@@ -592,12 +617,12 @@ namespace BurnOutSharp.Wrappers
// If we have no resource table, just return
if (OH_ResourceTable == null
- || _executable.OptionalHeader.ResourceTable.VirtualAddress == 0
- || _executable.ResourceDirectoryTable == null)
+ || OH_ResourceTable.VirtualAddress == 0
+ || ResourceDirectoryTable == null)
return null;
// Otherwise, build and return the cached dictionary
- ParseResourceDirectoryTable(_executable.ResourceDirectoryTable, types: new List