Commit graph

122 commits

Author SHA1 Message Date
Michael Scire 7472bc1c7f Improve exception wrapping 2019-12-08 03:29:47 -08:00
Michael Scire 746dbfe018 ams_mitm: Implement emummc Nintendo folder redirection 2019-12-07 12:41:28 -08:00
Michael Scire ea3ebbaa7d strat: TitleId -> ProgramId, titles->contents 2019-12-07 12:41:28 -08:00
Michael Scire 1636668762 strat: fixes for compat with latest libnx 2019-12-07 12:41:28 -08:00
Michael Scire d7a06057eb strat: split out common functionality for future meso use 2019-12-07 12:41:28 -08:00
Michael Scire 8cb77ac136 namespace sts -> namespace ams
namespace sts::ams -> ams::exosphere, ams::.

This is to facilitate future use of ams:: namespace code in
mesosphere, as we'll want to include ams::util, ams::result, ams::svc...
2019-12-07 12:41:28 -08:00
Michael Scire 4059dc6187 Results: Implement namespaced, type-safe results.
Because I was working on multiple things at once, this commit also:
- Adds wrappers for/linker flags to wrap CXX exceptions to make them
  abort. This saves ~0x8000 of memory in every system module.
- Broadly replaces lines of the pattern if (cond) { return ResultX; }
  with R_UNLESS(!cond, ResultX());.
- Reworks the R_TRY_CATCH macros (and the result macros in general).
2019-12-07 12:41:28 -08:00
Michael Scire 0b22af1206 libstrat: namespace remaining non-namespaced code. more new-ipc updates 2019-12-07 12:41:28 -08:00
Michael Scire 535e49a38d strat: statically allocate additional threads 2019-12-07 12:41:28 -08:00
Michael Scire 89c6fc6437 creport: update for new-ipc 2019-12-07 12:41:28 -08:00
Michael Scire 39d041466d fatal: refactor into sts namespace 2019-07-23 14:01:16 -07:00
Michael Scire 4cc2b5c38a creport: address review commentary 2019-07-15 14:35:48 -07:00
Michael Scire 00e3d874e3 creport: fix dangling reference to user_result 2019-07-15 14:35:48 -07:00
Michael Scire 803e91a8c4 creport: pass user break result directly 2019-07-15 14:35:48 -07:00
Michael Scire 227a1d938d creport: refactor to use sts:: namespace. 2019-07-15 14:35:48 -07:00
Michael Scire 2d0c881ffe strat: go all in on ncm::TitleId 2019-07-11 22:24:59 -07:00
Michael Scire cead8a36ea stratosphere: more result cleanup 2019-06-20 02:00:59 -07:00
Thomas Guillemard bbcb3757bd
Address comment 2019-05-28 00:26:56 +02:00
Thomas Guillemard a33ace8996
creport: Add 32 bits stack frames parsing support
Also fix FP, SP and LR registers being set wrongly by svcGetDebugThreadParam for 32 bits processes.
2019-05-28 00:18:10 +02:00
Michael Scire 766097d0b7 creport: dump tls/name on crash (closes #310) 2019-05-25 13:33:33 -07:00
Michael Scire 41f5b39f6b stratosphere: stop using kernelAbove 2019-05-10 03:25:07 -07:00
Michael Scire b09adb6a34 stratosphere: only hold sm sessions open when needed 2019-04-22 12:59:49 -07:00
Michael Scire d0659377e8 creport: speed up code region detection (closes #491) 2019-04-12 23:04:12 -07:00
Michael Scire ac07971211 stratosphere: custom exception handlers (reboot to fusee) 2019-04-12 15:28:46 -07:00
Michael Scire 03e176d7f1 atmosphere: current year is 2019 2019-04-07 19:00:49 -07:00
Michael Scire 2678735f73 stratosphere: migrate result headers to libstrat 2019-03-28 14:23:34 -07:00
Michael Scire 991fe78740 creport/fatal: fix time-retrieval functionality 2019-03-14 09:16:55 -07:00
Michael Scire a0acbda9ce creport: include firmware version header 2019-02-20 14:23:38 -08:00
Michael Scire f00dd05f82 Make stratosphere use new libnx HosVersion API 2019-02-20 14:17:51 -08:00
Michael Scire a3adb70a04 stratosphere: version detect via svcCallSecureMonitor 2019-01-31 03:24:19 -08:00
Michael Scire c42fc16d8e creport: RESULT_SUCCESS is not a defined value by libnx. 2019-01-22 05:38:27 -08:00
Michael Scire a09137c008 creport: Okay, maybe actually fix formatting. 2019-01-22 05:38:27 -08:00
Michael Scire 2a2d1bc78b creport: Fix formatting error. 2019-01-22 05:38:27 -08:00
Michael Scire 50db685274 creport: attempt to improve userbreak errcode output 2019-01-22 05:38:27 -08:00
SciresM c530bb8910
Merge branch 'master' into fatal 2018-11-14 14:15:01 -08:00
Michael Scire 8054b2d219 Fatal: save auto-debug info to SD card. 2018-11-14 14:13:31 -08:00
Michael Scire 9714db14d2 fatal/creport: Add cpu context. 2018-11-13 20:22:54 -08:00
Michael Scire 2838e41819 Add defines for atmosphere git revision. 2018-11-13 12:42:35 -08:00
Michael Scire 7d729e1836 creport: Add another code region locating improvement. 2018-11-11 20:00:04 -08:00
Michael Scire 36530a5501 creport: Improve code region list (as N did in 6.1.0) 2018-11-11 19:52:19 -08:00
SciresM b8f93562c0
Merge branch 'master' into npdmfixup 2018-10-31 18:02:07 +09:00
Michael Scire 6711cd93a8 atmosphere: extract API version management to common folder 2018-10-16 17:54:50 -07:00
roblabla 0938057d67 Use new npdm-json format 2018-09-29 02:37:25 +00:00
TuxSH d8391078c8 Fix creport according to latest libnx release changes 2018-09-19 15:03:50 +02:00
hexkyz 28e4d4411d Add and fix copyright notices for better GPL compliance (thanks @naehrwert and @CTCaer). 2018-09-07 16:00:13 +01:00
Michael Scire de49cfefac creport: Print Break information on UserBreak 2018-08-11 19:16:29 -07:00
Michael Scire 326d58e28c creport: tabs -> spaces 2018-08-11 19:02:12 -07:00
Michael Scire 6c8a1a39e1 creport: fix various issues, improve support (closes #187)
-Fixes a NULL deref in thread info parsing
-Heuristically uses [<buildid>] instead of rodata contents if NSO has no
name segment
-Adds full thread/code region dump for all firmwares, instead of just
5.x.
2018-08-11 18:46:41 -07:00
Michael Scire 761ab4fcfe Creport: Update makefile to build npdm/nsp 2018-08-10 19:52:32 -07:00
Michael Scire c70420d996 creport: Actually change report paths. 2018-07-29 16:54:15 -07:00
Michael Scire 84bcaf8dc6 creport: Change report path to crash_reports 2018-07-29 16:48:33 -07:00
Michael Scire a811b447ce creport: Pretty-print addresses whenever possible. 2018-07-27 20:34:09 -07:00
Michael Scire 2a6348cd73 creport: add fsp-srv access to npdm 2018-07-27 19:57:32 -07:00
Léo Lam e088a2f414 stratosphere: In-class initialize members
Same thing, less code, less boilerplate.
2018-07-10 09:38:18 -07:00
Michael Scire 6fd82b7947 creport: Add dying message to output report, if relevant. 2018-06-26 00:51:53 -06:00
Michael Scire 4eadeb021b creport: Complete crash report saving. 2018-06-26 00:44:58 -06:00
Michael Scire d5b303f852 creport: Clean up bugs, now saves (empty) reports to the SD successfully 2018-06-25 22:27:33 -06:00
Michael Scire 12236eae9e creport: Fix bad constructor for ThreadInfo 2018-06-25 20:40:33 -06:00
Michael Scire 71e87e9e35 creport: fix a bunch of trivial errors 2018-06-25 10:25:14 -06:00
Michael Scire fc36429b99 creport: fix typo in json 2018-06-25 10:23:37 -06:00
Michael Scire b8e0c2855f creport: Further Skeleton Report saving. 2018-06-25 10:22:37 -06:00
Michael Scire 92bc396972 creport: Implement reading name/build id from .rodata 2018-06-25 09:50:36 -06:00
Michael Scire f189610af8 creport: Skeleton reading of Code Regions. 2018-06-25 04:38:54 -06:00
Michael Scire fd6fa89122 creport: fix thread_list access style 2018-06-25 04:08:42 -06:00
Michael Scire d65255acb8 creport: Implement reading info about all threads. 2018-06-25 04:07:44 -06:00
Michael Scire 5268a9f9f3 creport: Implement reading a dying message 2018-06-25 03:40:32 -06:00
Michael Scire e6b7793916 creport: Parse info for crashed thread 2018-06-25 03:04:17 -06:00
Michael Scire 7cd44e8980 creport: Read exception info properly (except for crashed thread info) 2018-06-25 02:18:26 -06:00
Michael Scire 4e7fcc1a50 creport: Solidify main() logic. 2018-06-25 01:58:44 -06:00
Michael Scire 851d21a276 creport: Implement process open, stub exception parsing. 2018-06-25 01:45:25 -06:00
Michael Scire 6ffc9bd8e0 creport: Further skeleton the CrashReport object. 2018-06-25 00:42:26 -06:00
Michael Scire af4485d533 creport: Add skeleton. Doesn't actually generate reports yet. 2018-06-24 22:46:20 -06:00