summaryrefslogtreecommitdiff
path: root/src/core/arm/arm_interface.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* kernel: instantiate memory separately for each guest processGravatar Liam2023-12-221-1/+1
|
* core: refactor emulated cpu core activationGravatar Liam2023-12-041-208/+9
|
* arm: Print backtrace on data abortGravatar GPUCode2023-11-251-0/+2
|
* core: check for thread dpc before eretGravatar Liam2023-11-131-8/+8
|
* kernel: update KProcessGravatar Liam2023-10-211-3/+3
|
* Fixes and workarounds to make UBSan happier on macOSGravatar comex2023-07-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are still some other issues not addressed here, but it's a start. Workarounds for false-positive reports: - `RasterizerAccelerated`: Put a gigantic array behind a `unique_ptr`, because UBSan has a [hardcoded limit](https://stackoverflow.com/questions/64531383/c-runtime-error-using-fsanitize-undefined-object-has-a-possibly-invalid-vp) of how big it thinks objects can be, specifically when dealing with offset-to-top values used with multiple inheritance. Hopefully this doesn't have a performance impact. - `QueryCacheBase::QueryCacheBase`: Avoid an operation that UBSan thinks is UB even though it at least arguably isn't. See the link in the comment for more information. Fixes for correct reports: - `PageTable`, `Memory`: Use `uintptr_t` values instead of pointers to avoid UB from pointer overflow (when pointer arithmetic wraps around the address space). - `KScheduler::Reload`: `thread->GetOwnerProcess()` can be `nullptr`; avoid calling methods on it in this case. (The existing code returns a garbage reference to a field, which is then passed into `LoadWatchpointArray`, and apparently it's never used, so it's harmless in practice but still triggers UBSan.) - `KAutoObject::Close`: This function calls `this->Destroy()`, which overwrites the beginning of the object with junk (specifically a free list pointer). Then it calls `this->UnregisterWithKernel()`. UBSan complains about a type mismatch because the vtable has been overwritten, and I believe this is indeed UB. `UnregisterWithKernel` also loads `m_kernel` from the 'freed' object, which seems to be technically safe (the overwriting doesn't extend as far as that field), but seems dubious. Switch to a `static` method and load `m_kernel` in advance.
* arm_interface: correct breakpoint rewind conditionGravatar Liam2023-07-091-1/+1
|
* core: decouple ARM interface from DynarmicGravatar Liam2023-06-121-15/+69
|
* memory: rename global memory references to application memoryGravatar Liam2023-03-231-1/+1
|
* kernel: use KTypedAddress for addressesGravatar Liam2023-03-221-5/+5
|
* general: rename CurrentProcess to ApplicationProcessGravatar Liam2023-02-131-3/+3
|
* Be careful of mangled out of bounds readGravatar Kelebek12023-01-141-4/+0
|
* Add stacktrace symbol demanglingGravatar Kelebek12023-01-141-14/+4
|
* core: add option to break on unmapped accessGravatar Liam2022-12-021-2/+6
|
* core: hle: kernel: k_thread: Implement thread termination DPC.Gravatar bunnei2022-10-181-0/+8
|
* Merge pull request #8549 from liamwhite/kscheduler-scGravatar Morph2022-07-251-1/+2
|\ | | | | kernel: use KScheduler from Mesosphere
| * kernel: use KScheduler from mesosphereGravatar Liam2022-07-141-1/+2
| |
* | dynarmic: Abort watchpoints ASAPGravatar Merry2022-07-151-1/+0
|/
* Merge pull request #8501 from liamwhite/backtrace-againGravatar Mai2022-07-071-0/+15
|\ | | | | core/arm: better support for backtrace generation
| * core/arm: better support for backtrace generationGravatar Liam2022-06-251-0/+15
| |
* | Merge pull request #8490 from liamwhite/read-code-stopGravatar Morph2022-06-301-5/+12
|\ \ | | | | | | dynarmic: Stop ReadCode callbacks to unmapped addresses
| * | dynarmic: Stop ReadCode callbacks to unmapped addressesGravatar Liam2022-06-211-5/+12
| |/
* / kernel: make current thread pointer thread localGravatar Liam2022-06-231-1/+1
|/
* core/debugger: memory breakpoint supportGravatar Liam2022-06-161-1/+40
|
* core: centralize profile scope for DynarmicGravatar Liam2022-06-141-0/+2
|
* core/debugger: Improved stepping mechanism and misc fixesGravatar Liam2022-06-011-2/+43
|
* core/debugger: Implement new GDB stub debuggerGravatar Liam2022-06-011-0/+5
|
* general: Convert source file copyright comments over to SPDXGravatar Morph2022-04-231-3/+2
| | | | | This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
* core/arm: separate backtrace collectionGravatar Liam2022-04-201-83/+14
|
* core: extract symbol readingGravatar Liam2022-04-091-129/+12
|
* General: Resolve a few missing initializer warningsGravatar Lioncash2020-10-291-2/+10
| | | | Resolves a few -Wmissing-initializer warnings.
* Revert "core: Fix clang build"Gravatar bunnei2020-10-201-20/+4
|
* core: Fix clang buildGravatar Lioncash2020-10-171-4/+20
| | | | | | | Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795
* ARM/WaitTree: Better track the CallStack for each thread.Gravatar Fernando Sahmkow2020-06-271-0/+57
|
* core: memory: Move to Core::Memory namespace.Gravatar bunnei2020-04-171-1/+1
| | | | - helpful to disambiguate Kernel::Memory namespace.
* CMakeLists: Specify -Wextra on linux buildsGravatar Lioncash2020-04-151-2/+2
| | | | | | | | | | | Allows reporting more cases where logic errors may exist, such as implicit fallthrough cases, etc. We currently ignore unused parameters, since we currently have many cases where this is intentional (virtual interfaces). While we're at it, we can also tidy up any existing code that causes warnings. This also uncovered a few bugs as well.
* core/memory: Migrate over Read{8, 16, 32, 64, Block} to the Memory classGravatar Lioncash2019-11-261-12/+12
| | | | | | | | | | | | | | With all of the trivial parts of the memory interface moved over, we can get right into moving over the bits that are used. Note that this does require the use of GetInstance from the global system instance to be used within hle_ipc.cpp and the gdbstub. This is fine for the time being, as they both already rely on the global system instance in other functions. These will be removed in a change directed at both of these respectively. For now, it's sufficient, as it still accomplishes the goal of de-globalizing the memory code.
* core: Prepare various classes for memory read/write migrationGravatar Lioncash2019-11-261-2/+1
| | | | | | | | | | Amends a few interfaces to be able to handle the migration over to the new Memory class by passing the class by reference as a function parameter where necessary. Notably, within the filesystem services, this eliminates two ReadBlock() calls by using the helper functions of HLERequestContext to do that for us.
* loader: Move NSO module tracking to AppLoaderGravatar Zach Hilman2019-05-261-8/+19
| | | Also cleanup of general stuff
* arm_interface: Expand backtrace generationGravatar Zach Hilman2019-05-251-7/+183
| | | | Returns results as a vector of entries for further processing. Logs addresses, offsets, and mangled name.
* arm_interface: Make include path relative for arm_interface.hGravatar Lioncash2018-12-301-1/+1
| | | | Makes it consistent with the rest of the includes.
* arm_interface: Make LogBacktrace() a const member functionGravatar Lioncash2018-12-301-1/+1
| | | | This function doesn't modify instance state, so it can be made const.
* arm_interface: Mark variables as const where applicable in LogBacktrace()Gravatar Lioncash2018-12-301-3/+4
| | | | | Two of these variables have fixed values, so we can make that immediately obvious from the get-go.
* arm_interface: Remove unnecessary semicolonGravatar Lioncash2018-12-301-1/+1
| | | | | Namespaces don't require the use of a semicolon. Silences a -Wextra-semi warning.
* Moved log backtrace to arm_interface.cpp. Added printing of error code to fatalGravatar David Marcec2018-12-291-0/+26