diff --git a/Changelog.md b/Changelog.md index 9c0b91985eeaf14331245385517082fee96eed98..b2b43af5bc8c7eb0bf05f19b31bd98c0a0b59d44 100644 --- a/Changelog.md +++ b/Changelog.md @@ -16,7 +16,7 @@ OpenCore Changelog - Fixed regression for ACPI quirks `RebaseRegions` and `SyncTableIds` - Updated build process to provide stable and bleeding-edge versions of `EnableGop` - Implemented minor improvements in `PickerMode` `Apple` -- Improved filtering algorithm for `LogModules` option +- Improved filtering algorithm for `LogModules` and added `?` filter for matching non-standard log lines - Fixed crash when gathering system report on virtualised CPUs #### v0.9.1 diff --git a/Docs/Configuration.md5 b/Docs/Configuration.md5 index 93cfc93a94b0a72fd44ab53cc95fa0cab3ff5fd2..2c800d9510ebb00d7b7986e475401db12f794cc4 100644 --- a/Docs/Configuration.md5 +++ b/Docs/Configuration.md5 @@ -1 +1 @@ -97c56a093dd641371080fd3594c39713 +b80643c92a9f4fdd8cd24a607f69f22c diff --git a/Docs/Configuration.pdf b/Docs/Configuration.pdf index 7e122d4fe3cf795ee7374c5a7cf13841d5c67fd9..69c4d85f6e59958328a759e0f84bfe66315f3d81 100644 Binary files a/Docs/Configuration.pdf and b/Docs/Configuration.pdf differ diff --git a/Docs/Configuration.tex b/Docs/Configuration.tex index 425f2d4ade0f961189d3ec7e91eec4322ffb9d88..18172d8eb33c6086b6fec791884cd0418cbf366a 100755 --- a/Docs/Configuration.tex +++ b/Docs/Configuration.tex @@ -3877,17 +3877,21 @@ cat Kernel.panic | grep macOSProcessedStackshotData | \item \texttt{+} --- Positive filtering: Only present selected modules. \item \texttt{-} --- Negative filtering: Exclude selected modules. \end{itemize} - When multiple ones are selected, comma (\texttt{,}) should be used as the splitter. - For instance, \texttt{+OCCPU,OCA,OCB} means \emph{only} \texttt{OCCPU}, \texttt{OCA}, \texttt{OCB} being printed, - while \texttt{-OCCPU,OCA,OCB} indicates these modules being filtered out (i.e. \emph{not} logged). - When no symbol is specified, positive filtering (\texttt{+}) will be used. - \texttt{*} indicates all modules being logged. + When multiple log line identifiers are selected, comma (\texttt{,}) should be used as the splitter. + For instance, \texttt{+OCCPU,OCA,OCB} means only \texttt{OCCPU}, \texttt{OCA}, \texttt{OCB} should be + logged, while \texttt{-OCCPU,OCA,OCB} indicates these modules should be filtered out (i.e. not logged). + Since there may be lines in the log with no valid prefix (i.e. log lines which are not generated by + parts of OpenCore, but by other loaded drivers) then the special module name question mark (\texttt{?}) + can be included in the list to include (with positive filtering) or exclude (with negative filtering) + these non-standard lines. When no \texttt{+} or \texttt{-} symbol is specified, positive filtering + (\texttt{+}) will be used. \texttt{*} alone as the option value indicates all modules being logged. \emph{Note 1}: Acronyms of libraries can be found in the \hyperref[oc-mod-libs]{\texttt{Libraries}} section below. - \emph{Note 2}: Messages printed before the configuration of log protocol - cannot be filtered. + \emph{Note 2}: Messages printed before the configuration of the log protocol cannot be filtered + from the early on screen log, but on being de-buffered from the early log buffer, will be filtered + as requested for other log targets. \emph{Note 3}: To avoid missing key issues, warning and error log messages are not filtered. diff --git a/Docs/Differences/Differences.pdf b/Docs/Differences/Differences.pdf index 97b455f0bd6b406adfd1f60e69b75a0c65700f64..0ecec2787b939f7a8b2d8ec6a1b87e481530c0a6 100644 Binary files a/Docs/Differences/Differences.pdf and b/Docs/Differences/Differences.pdf differ diff --git a/Docs/Differences/Differences.tex b/Docs/Differences/Differences.tex index 8fb96e572f67ee6294e58831a25ce844292d7371..f57bde625f87df42ae0b329c581cdead1f78681f 100644 --- a/Docs/Differences/Differences.tex +++ b/Docs/Differences/Differences.tex @@ -1,7 +1,7 @@ \documentclass[]{article} %DIF LATEXDIFF DIFFERENCE FILE %DIF DEL PreviousConfiguration.tex Fri May 5 21:18:04 2023 -%DIF ADD ../Configuration.tex Sun May 7 11:45:23 2023 +%DIF ADD ../Configuration.tex Sun May 7 15:45:34 2023 \usepackage{lmodern} \usepackage{amssymb,amsmath} @@ -3948,17 +3948,23 @@ cat Kernel.panic | grep macOSProcessedStackshotData | \item \texttt{+} --- Positive filtering: Only present selected modules. \item \texttt{-} --- Negative filtering: Exclude selected modules. \end{itemize} - When multiple ones are selected, comma (\texttt{,}) should be used as the splitter. - For instance, \texttt{+OCCPU,OCA,OCB} means \emph{only} \texttt{OCCPU}, \texttt{OCA}, \texttt{OCB} being printed, - while \texttt{-OCCPU,OCA,OCB} indicates these modules being filtered out (i.e. \emph{not} logged). - When no symbol is specified, positive filtering (\texttt{+}) will be used. - \texttt{*} indicates all modules being logged. + When multiple \DIFdelbegin \DIFdel{ones }\DIFdelend \DIFaddbegin \DIFadd{log line identifiers }\DIFaddend are selected, comma (\texttt{,}) should be used as the splitter. + For instance, \texttt{+OCCPU,OCA,OCB} means \DIFdelbegin \emph{\DIFdel{only}} %DIFAUXCMD +\DIFdelend \DIFaddbegin \DIFadd{only }\DIFaddend \texttt{OCCPU}, \texttt{OCA}, \texttt{OCB} \DIFdelbegin \DIFdel{being printed}\DIFdelend \DIFaddbegin \DIFadd{should be + logged}\DIFaddend , while \texttt{-OCCPU,OCA,OCB} indicates these modules \DIFdelbegin \DIFdel{being }\DIFdelend \DIFaddbegin \DIFadd{should be }\DIFaddend filtered out (i.e. \DIFdelbegin \emph{\DIFdel{not}} %DIFAUXCMD +\DIFdelend \DIFaddbegin \DIFadd{not }\DIFaddend logged). + \DIFdelbegin \DIFdel{When no }\DIFdelend \DIFaddbegin \DIFadd{Since there may be lines in the log with no valid prefix (i.e. log lines which are not generated by + parts of OpenCore, but by other loaded drivers) then the special module name question mark (}\texttt{\DIFadd{?}}\DIFadd{) + can be included in the list to include (with positive filtering) or exclude (with negative filtering) + these non-standard lines. When no }\texttt{\DIFadd{+}} \DIFadd{or }\texttt{\DIFadd{-}} \DIFaddend symbol is specified, positive filtering + (\texttt{+}) will be used. \texttt{*} \DIFaddbegin \DIFadd{alone as the option value }\DIFaddend indicates all modules being logged. \emph{Note 1}: Acronyms of libraries can be found in the \hyperref[oc-mod-libs]{\texttt{Libraries}} section below. - \emph{Note 2}: Messages printed before the configuration of log protocol - cannot be filtered. + \emph{Note 2}: Messages printed before the configuration of \DIFaddbegin \DIFadd{the }\DIFaddend log protocol cannot be filtered + \DIFaddbegin \DIFadd{from the early on screen log, but on being de-buffered from the early log buffer, will be filtered + as requested for other log targets}\DIFaddend . \DIFaddbegin \emph{\DIFadd{Note 3}}\DIFadd{: To avoid missing key issues, warning and error log messages are not filtered. diff --git a/Docs/Errata/Errata.pdf b/Docs/Errata/Errata.pdf index b4cd9a5d985b81ab7fa4ad5ff50ec904b1b46b4c..a5cc1300ea0c3511c6c00359bcda144cda4b9743 100644 Binary files a/Docs/Errata/Errata.pdf and b/Docs/Errata/Errata.pdf differ diff --git a/Library/OcLogAggregatorLib/OcLog.c b/Library/OcLogAggregatorLib/OcLog.c index e92637eede4f7341824374980d37cdfe6734fe77..a8e2571724e9b122efa4fc0f3094f0311986bf9d 100644 --- a/Library/OcLogAggregatorLib/OcLog.c +++ b/Library/OcLogAggregatorLib/OcLog.c @@ -224,7 +224,7 @@ IsPrefixFiltered ( Status = GetLogPrefix (FormattedString, Prefix); if (EFI_ERROR (Status)) { - return FALSE; + AsciiStrCpyS (Prefix, ARRAY_SIZE (Prefix), "?"); } for (Index = 0; Index < FlexFilters->Count; ++Index) {