Vestral
e066735fe9
Utils fixes for ASLR
Generate Translation Template / Generate Translation Template (push) Waiting to run
Build RPCS3 / RPCS3 Linux ubuntu-24.04 gcc (push) Waiting to run
Build RPCS3 / RPCS3 Linux ubuntu-24.04-arm clang (push) Waiting to run
Build RPCS3 / RPCS3 Linux ubuntu-24.04 clang (push) Waiting to run
Build RPCS3 / RPCS3 Windows (push) Waiting to run
2025-04-30 02:56:23 +02:00
DH
95d0cb18e4
Coding style issues fixes
...
Thanks @Megamouse
2025-03-10 21:09:27 +01:00
DH
798c194025
android stuff
2025-03-10 21:09:27 +01:00
Elad
9677a3a9ea
Fix Emulator::IsPaused() to allow measurements during module compilation
...
Also fix a potential deadlock in access violation handler for non-cpu_thread
2025-01-25 12:47:44 +02:00
Elad
7b8fee7cdb
Thread.cpp: Report VM addresses on VM segfault
2025-01-25 12:47:44 +02:00
Elad
6a4b9430c0
Thread.h: Add a few noexcept
2024-12-24 21:31:57 +02:00
Elad
575a245f8d
IDM: Implement lock-free smart pointers ( #16403 )
...
Replaces `std::shared_pointer` with `stx::atomic_ptr` and `stx::shared_ptr`.
Notes to programmers:
* This pr kills the use of `dynamic_cast`, `std::dynamic_pointer_cast` and `std::weak_ptr` on IDM objects, possible replacement is to save the object ID on the base object, then use idm::check/get_unlocked to the destination type via the saved ID which may be null. Null pointer check is how you can tell type mismatch (as dynamic cast) or object destruction (as weak_ptr locking).
* Double-inheritance on IDM objects should be used with care, `stx::shared_ptr` does not support constant-evaluated pointer offsetting to parent/child type.
* `idm::check/get_unlocked` can now be used anywhere.
Misc fixes:
* Fixes some segfaults with RPCN with interaction with IDM.
* Fix deadlocks in access violation handler due locking recursion.
* Fixes race condition in process exit-spawn on memory containers read.
* Fix bug that theoretically can prevent RPCS3 from booting - fix `id_manager::typeinfo` comparison to compare members instead of `memcmp` which can fail spuriously on padding bytes.
* Ensure all IDM inherited types of base, either has `id_base` or `id_type` defined locally, this allows to make getters such as `idm::get_unlocked<lv2_socket, lv2_socket_raw>()` which were broken before. (requires save-states invalidation)
* Removes broken operator[] overload of `stx::shared_ptr` and `stx::single_ptr` for non-array types.
2024-12-22 20:59:48 +02:00
Elad
926de68a79
Debugger: Dump related thread information on crash
2024-11-28 13:32:52 +02:00
Megamouse
2262ac1684
Qt: Replace QMap with std::map
...
This should reduce the amount of string conversions during list refreshes
2024-11-06 09:34:32 +01:00
kd-11
31ce32709e
build: Disble fixed base for windows-on-arm
2024-09-08 17:41:29 +03:00
kd-11
4f27af9949
Fix compilation warning
2024-09-08 17:41:29 +03:00
kd-11
a60eab6e36
aarch64: Fix compilation for windows-on-arm
2024-09-04 07:49:49 +03:00
kd-11
470f8674df
aarch64 - Support for apple exceptions
2024-08-24 14:13:14 +03:00
kd-11
4bb79b6c31
Rework aarch64 signal handling
2024-08-21 16:16:28 +03:00
kd-11
3ea24183b9
Improve "write" instruction detection.
2024-08-20 05:18:53 +03:00
kd-11
c2f5de1c55
Fix compiler warnings about unused args for aarch64
2024-08-20 05:18:53 +03:00
Elad Ashkenazi
1bd4565186
Implement thread_ctrl::wait_until()
2024-08-17 06:38:49 +03:00
Megamouse
ab923bc2c3
Add comment for thread_scheduler_mode::old to get_affinity_mask
2024-05-18 16:16:08 +02:00
Megamouse
dfee5b9a6c
threads: replace magic number id_type with thread_class
2024-05-18 16:16:08 +02:00
Elad Ashkenazi
302fe53704
Log SPU access violation in always-level
2024-05-14 19:36:48 +03:00
Elad Ashkenazi
7c313703a2
Savestates: Fix SPU pause from access violation handler
2024-05-14 19:36:48 +03:00
Eladash
4905cd425f
Thread.cpp: Prevent repeatedly halting the debugger
2024-05-04 14:15:51 +03:00
Eladash
316b3a8851
Thread.cpp: Reduce logging
2024-03-27 19:59:22 +02:00
Eladash
d39361705a
report_fatal_error: Minor cleanup and improvement
2024-03-06 20:32:22 +02:00
Eladash
77ba2b40e7
Thread.cpp: Explicitly state difference type in thread_ctrl::wait_for_accurate
2024-02-11 23:01:40 +02:00
pastalian
e8ad6ec673
Add missing headers ( #15075 )
...
Some systems must explicitly include these headers.
2024-01-24 17:22:37 +01:00
Eladash
f696107c90
Add savestate data validity asserts
2023-12-29 11:11:53 +02:00
Eladash
0c410f8a14
Postpone thread launching on g_fxo->init
2023-12-19 15:34:07 +02:00
Eladash
f9d213650c
Utilities/Thread.cpp: Fix threads memory leak
2023-10-24 22:14:12 +03:00
Eladash
53ba38e98d
Thread.cpp: Flush log and make thread context dump on exception
2023-09-05 06:20:57 +03:00
Eladash
cd98e84ca5
Debugger/RSX: Add FP/VP hash of current shader
2023-08-19 04:21:37 +03:00
Ivan Chikish
d34287b2cc
Linux: use futex_waitv syscall for atomic waiting
...
In order to make this possible, some unnecessary features were removed.
2023-08-02 21:46:06 +03:00
Ivan Chikish
831a9fe012
Remove thread pool
...
Prevents implementing thread priority on Linux.
2023-08-02 21:46:06 +03:00
Eladash
1184d6aecb
Thread.cpp: Fixup SPU access violation log message
2023-07-31 11:55:31 +03:00
Eladash
12fe55a258
Thread.cpp: Always print SPU thread name in access violation
...
Suppress GUI log window prefix removal.
2023-07-23 17:58:54 +03:00
oltolm
0c94606fcf
Make compile with msvc, clang and gcc on Windows
2023-07-11 21:40:30 +03:00
Eladash
17d8f2884e
Debug fixes
2023-07-09 13:33:03 +03:00
Eladash
300701a06b
Make page faults entry enqueue and event atomic
2023-06-02 08:54:46 +03:00
Eladash
3d8d9ef61c
Threads.cpp: Fix infinite looping
2023-06-02 08:54:46 +03:00
Eladash
f031cd9b42
Take advantage of WIN10 Thread Name API
2023-05-24 20:39:51 +02:00
oltolm
b7b87096d8
fix: make ASAN work on Windows
2023-05-06 10:17:58 +02:00
Ivan Chikish
3cf8c629fa
X86 SigHandler: Add support for BEXTR instruction
...
BEXTR is emitted for znver CPUs in recent LLVM.
2023-05-05 18:03:50 +03:00
RipleyTom
0f45a8c180
Fix inaccuracies pointed out by PVS-Studio
2023-03-25 08:45:30 +01:00
Megamouse
92ae57c9ee
Windows: log more descriptive errors
2023-03-04 18:34:56 +01:00
Jan Beich
3eaa29e7c2
Thread: silence -Wsign-compare on FreeBSD aarch64
...
Utilities/Thread.cpp:1805:48: error: comparison of integers of different signs: 'uptr' (aka 'unsigned long') and '__register_t' (aka 'long') [-Werror,-Wsign-compare]
const bool is_executing = uptr(info->si_addr) == RIP(context);
~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~
2023-01-19 18:49:06 +03:00
Eladash
8980fc5524
rsx: Fix exceptions
2022-12-17 14:27:20 +01:00
kd-11
0aaa40cd53
ux: Update vcredist links and optionally disable help text from error dialog
2022-12-06 20:46:35 +01:00
Megamouse
a6b44ea1bb
Qt: support fatal error as htmk
2022-12-06 20:46:35 +01:00
Eladash
e9e139c364
logs improvements
...
* Do not use unsafe pointer arithmetics exceeding existing memory. (exceeding m_fptr)
* Properly use the enire 32MB of the buffer, previously only 16MB were used for cuncurrent access.
* Fix a bug occurring after attempting to push 1TB (40 bits).
* Flush the log before hitting a debugging breakpoint.
2022-11-28 18:52:11 +03:00
Eladash
8b934abcf2
Improve error_code, make HDD1 errors be warnings
2022-11-26 16:33:47 +03:00