MCPcopy Create free account
hub / github.com/PCSX2/pcsx2 / getNthNextAddress

Method getNthNextAddress

pcsx2/DebugTools/DisassemblyManager.cpp:310–341  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

308}
309
310u32 DisassemblyManager::getNthNextAddress(u32 address, int n)
311{
312 if (!cpu->isAlive())
313 return address + n * 4;
314
315 while (cpu->isValidAddress(address))
316 {
317 auto it = findDisassemblyEntry(entries,address,false);
318
319 while (it != entries.end())
320 {
321 DisassemblyEntry* entry = it->second;
322 int oldLineNum = entry->getLineNum(address,true);
323 int oldNumLines = entry->getNumLines();
324 if (oldLineNum+n < oldNumLines)
325 {
326 return entry->getLineAddress(oldLineNum+n);
327 }
328
329 address = entry->getLineAddress(0)+entry->getTotalSize();
330 n -= (oldNumLines-oldLineNum);
331 it = findDisassemblyEntry(entries,address,false);
332 }
333
334 if ((address + 0x400) < address) // Check for unsigned overflow, we are analysing too high!
335 break;
336
337 analyze(address);
338 }
339
340 return address+n*4;
341}
342
343void DisassemblyManager::clear()
344{

Callers 1

paintEventMethod · 0.80

Calls 8

findDisassemblyEntryFunction · 0.85
isAliveMethod · 0.80
isValidAddressMethod · 0.80
endMethod · 0.45
getLineNumMethod · 0.45
getNumLinesMethod · 0.45
getLineAddressMethod · 0.45
getTotalSizeMethod · 0.45

Tested by

no test coverage detected