示例#1
0
void ARMv7Thread::dump_info() const
{
	if (hle_func)
	{
		const auto func = get_psv_func_by_nid(hle_func);
		
		LOG_SUCCESS(HLE, "Last function: %s (0x%x)", func ? func->name : "?????????", hle_func);
	}

	CPUThread::dump_info();
}
示例#2
0
void CPUThread::DumpInformation()
{
	auto get_syscall_name = [this](u64 syscall) -> std::string
	{
		switch (GetType())
		{
		case CPU_THREAD_ARMv7:
		{
			if ((u32)syscall == syscall)
			{
				if (syscall)
				{
					if (auto func = get_psv_func_by_nid((u32)syscall))
					{
						return func->name;
					}
				}
				else
				{
					return{};
				}
			}

			return "unknown function";
		}

		case CPU_THREAD_PPU:
		{
			if ((u32)syscall == syscall)
			{
				if (syscall)
				{
					if (syscall < 1024)
					{
						// TODO:
						//return SysCalls::GetSyscallName((u32)syscall);
						return "unknown syscall";
					}
					else
					{
						return SysCalls::GetHLEFuncName((u32)syscall);
					}
				}
				else
				{
					return{};
				}
			}

			return "unknown function";
		}

		case CPU_THREAD_SPU:
		case CPU_THREAD_RAW_SPU:
		default:
		{
			if (!syscall)
			{
				return{};
			}

			return "unknown function";
		}
		}
	};

	LOG_ERROR(GENERAL, "Information: is_alive=%d, m_last_syscall=0x%llx (%s)", IsAlive(), m_last_syscall, get_syscall_name(m_last_syscall));
	LOG_WARNING(GENERAL, RegsToString());
}