Skip to content

Commit b9fb9ed

Browse files
authored
Merge pull request #1421 from microsoft/main
Merge main into release_mdd
2 parents 388983f + dad92af commit b9fb9ed

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

src/MIDebugEngine/AD7.Impl/AD7Engine.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ public int Attach(IDebugProgram2[] portProgramArray, IDebugProgramNode2[] progra
189189
{
190190
Debug.Assert(_ad7ProgramId == Guid.Empty);
191191

192-
Logger.LoadMIDebugLogger();
192+
Logger.EnsureInitialized();
193193

194194
if (celtPrograms != 1)
195195
{
@@ -539,7 +539,7 @@ int IDebugEngineLaunch2.LaunchSuspended(string pszServer, IDebugPort2 port, stri
539539
Debug.Assert(_ad7ProgramId == Guid.Empty);
540540

541541
// Check if the logger was enabled late.
542-
Logger.LoadMIDebugLogger();
542+
Logger.EnsureInitialized();
543543

544544
process = null;
545545

src/MIDebugEngine/Engine.Impl/Disassembly.cs

+15-2
Original file line numberDiff line numberDiff line change
@@ -308,8 +308,21 @@ private void DeleteRangeFromCache(DisassemblyBlock block)
308308
// this is inefficient so we try and grab everything in one gulp
309309
internal static async Task<DisasmInstruction[]> Disassemble(DebuggedProcess process, ulong startAddr, ulong endAddr)
310310
{
311-
string cmd = "-data-disassemble -s " + EngineUtils.AsAddr(startAddr, process.Is64BitArch) + " -e " + EngineUtils.AsAddr(endAddr, process.Is64BitArch) + " -- 2";
312-
Results results = await process.CmdAsync(cmd, ResultClass.None);
311+
string cmd;
312+
string startAddrStr;
313+
string endAddrStr;
314+
int i = 0;
315+
Results results;
316+
do
317+
{
318+
startAddrStr = EngineUtils.AsAddr(startAddr, process.Is64BitArch);
319+
endAddrStr = EngineUtils.AsAddr(endAddr, process.Is64BitArch);
320+
cmd = "-data-disassemble -s " + startAddrStr + " -e " + endAddrStr + " -- 2";
321+
results = await process.CmdAsync(cmd, ResultClass.None);
322+
--startAddr;
323+
++i;
324+
} while (results.ResultClass != ResultClass.done && i < process.MaxInstructionSize);
325+
313326
if (results.ResultClass != ResultClass.done)
314327
{
315328
return null;

0 commit comments

Comments
 (0)