<feed xmlns='http://www.w3.org/2005/Atom'>
<title>eglantine-cirakg/src/core/arm/arm_interface.cpp, branch nx2</title>
<subtitle>Mirror of github.com/cira0100/Eglantine-public nx2, a fork of Djihads80/Eglantine.</subtitle>
<id>https://git.cirakg.xyz/eglantine-cirakg/atom?h=nx2</id>
<link rel='self' href='https://git.cirakg.xyz/eglantine-cirakg/atom?h=nx2'/>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/'/>
<updated>2026-03-12T17:29:15+00:00</updated>
<entry>
<title>[common/logging] Simplify logging logic and fix issues when logging before system is created (#3688)</title>
<updated>2026-03-12T17:29:15+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2026-03-12T17:29:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=395613b01f918b559f0a3b1718c78f81987c49d4'/>
<id>urn:sha1:395613b01f918b559f0a3b1718c78f81987c49d4</id>
<content type='text'>
- our logging code was bigger than spdlog itself, why???? just keep it simple
- fix issues when logging before logging system is even started
- removes the "initialized logging twice" issue
- removes uneeded indirection in file logging
- uses direct formatting instead of jumping hoopla-around the fmt::format() ressult
- code duplication and dead code removal as usual

I did explore dup2() but I think it's not worth the hassle
I did try `fwopen()` but it's better if things are just kept as-is.

there is a lot of noise because I removed a bunch of redundant files on logging and just put everything in one file

now normally this wouldn't be a good idea, however consider: the complexity of logging; it's less than 500 lines... does it really need a whole subsystem?!?!?! ITS JUST LOGGING

Signed-off-by: lizzie &lt;lizzie@eden-emu.dev&gt;
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3688
Reviewed-by: crueter &lt;crueter@eden-emu.dev&gt;
Reviewed-by: DraVee &lt;chimera@dravee.dev&gt;
Reviewed-by: CamilleLaVey &lt;camillelavey99@gmail.com&gt;
Co-authored-by: lizzie &lt;lizzie@eden-emu.dev&gt;
Co-committed-by: lizzie &lt;lizzie@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>[core/arm] more verbose backtrace showing ALL of the thread's context state (#2924)</title>
<updated>2025-11-03T20:08:02+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2025-11-03T20:08:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=c0663ccd6bee9651db0aecb13e92f461e3d154d3'/>
<id>urn:sha1:c0663ccd6bee9651db0aecb13e92f461e3d154d3</id>
<content type='text'>
Should make backtraces infinitely better :)

Signed-off-by: lizzie &lt;lizzie@eden-emu.dev&gt;

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2924
Reviewed-by: Caio Oliveira &lt;caiooliveirafarias0@gmail.com&gt;
Reviewed-by: MaranBr &lt;maranbr@eden-emu.dev&gt;
Co-authored-by: lizzie &lt;lizzie@eden-emu.dev&gt;
Co-committed-by: lizzie &lt;lizzie@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>[arm] allow duplicate addresses on backtrace (#251)</title>
<updated>2025-08-15T21:20:08+00:00</updated>
<author>
<name>lizzie</name>
<email>lizzie@eden-emu.dev</email>
</author>
<published>2025-08-15T21:20:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=9c6fad756123db75e24e6e4f04c9a8812e31a986'/>
<id>urn:sha1:9c6fad756123db75e24e6e4f04c9a8812e31a986</id>
<content type='text'>
As a reminder, never remove duplicate entries from a back-trace, ever.
Signed-off-by: lizzie &lt;lizzie@eden-emu.dev&gt;

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/251
Reviewed-by: crueter &lt;crueter@eden-emu.dev&gt;
Co-authored-by: lizzie &lt;lizzie@eden-emu.dev&gt;
Co-committed-by: lizzie &lt;lizzie@eden-emu.dev&gt;
</content>
</entry>
<entry>
<title>arm: Skip duplicate consecutive addresses in backtrace output</title>
<updated>2025-04-19T20:56:48+00:00</updated>
<author>
<name>EmulationEnjoyer</name>
<email>emulationenjoyer@noreply.localhost</email>
</author>
<published>2024-11-12T21:38:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=e6d0c5ea4233201e9f28ad1b730aa0c7276ece5b'/>
<id>urn:sha1:e6d0c5ea4233201e9f28ad1b730aa0c7276ece5b</id>
<content type='text'>
ref: https://git.citron-emu.org/Citron/Citron/commit/aa56430f2a3179068f77b865d4fd0179aa5cc4c4
</content>
</entry>
<entry>
<title>kernel: instantiate memory separately for each guest process</title>
<updated>2023-12-23T02:52:49+00:00</updated>
<author>
<name>Liam</name>
<email>byteslice@airmail.cc</email>
</author>
<published>2023-12-12T01:21:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=e2b5f2392e03f37eeccb135814286a62ba629d3d'/>
<id>urn:sha1:e2b5f2392e03f37eeccb135814286a62ba629d3d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>core: refactor emulated cpu core activation</title>
<updated>2023-12-04T15:37:16+00:00</updated>
<author>
<name>Liam</name>
<email>byteslice@airmail.cc</email>
</author>
<published>2023-11-28T19:30:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=3d5c6a73cba80a58363a59ece4cd60c101d8b516'/>
<id>urn:sha1:3d5c6a73cba80a58363a59ece4cd60c101d8b516</id>
<content type='text'>
</content>
</entry>
<entry>
<title>arm: Print backtrace on data abort</title>
<updated>2023-11-25T05:47:36+00:00</updated>
<author>
<name>GPUCode</name>
<email>geoster3d@gmail.com</email>
</author>
<published>2023-11-20T16:56:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=a1818cddf6469045da6893efb3ae79f6eaeb9a8d'/>
<id>urn:sha1:a1818cddf6469045da6893efb3ae79f6eaeb9a8d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>core: check for thread dpc before eret</title>
<updated>2023-11-13T16:28:23+00:00</updated>
<author>
<name>Liam</name>
<email>byteslice@airmail.cc</email>
</author>
<published>2023-11-13T16:28:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=317741356f8ca99d085f242dc2c1ba0f2d04764c'/>
<id>urn:sha1:317741356f8ca99d085f242dc2c1ba0f2d04764c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>kernel: update KProcess</title>
<updated>2023-10-22T00:03:41+00:00</updated>
<author>
<name>Liam</name>
<email>byteslice@airmail.cc</email>
</author>
<published>2023-10-21T20:47:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=62e106dbe8e55e59a6a3c00f3bae2bb898ea54cb'/>
<id>urn:sha1:62e106dbe8e55e59a6a3c00f3bae2bb898ea54cb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fixes and workarounds to make UBSan happier on macOS</title>
<updated>2023-07-15T19:00:28+00:00</updated>
<author>
<name>comex</name>
<email>comexk@gmail.com</email>
</author>
<published>2023-07-01T22:00:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cirakg.xyz/eglantine-cirakg/commit/?id=85d77f636c7ab28ea67c4c303f5d85b063ceed73'/>
<id>urn:sha1:85d77f636c7ab28ea67c4c303f5d85b063ceed73</id>
<content type='text'>
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-&gt;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-&gt;Destroy()`, which
  overwrites the beginning of the object with junk (specifically a free
  list pointer).  Then it calls `this-&gt;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.
</content>
</entry>
</feed>
