Сообщение журнала кодирования для улучшения пространства хранения во встроенной системе - PullRequest
0 голосов
/ 10 мая 2019

В моей встроенной системе запущена служба ведения журнала, она регистрирует сообщения, полученные из приложения, строковые литералы записываются напрямую, в результате чего используется больше места.

Я ищу подходящую технику для кодирования строковых литералов внекоторый код во время компиляции и регенерация строки с использованием подходящего декодера.

Примечание: 1) Многие службы регистрируют сообщения, мне нужно позаботиться о возможности реализации решения.2) Если бы существовал лучший подход, я был бы признателен, если бы вы поделились ссылками.

1 Ответ

0 голосов
/ 21 мая 2019

Один весьма эффективный подход к обработке строковых литералов журнала в среде C / C ++ - это выделить их для отдельной секции компоновщика, которая отделена от конечного двоичного файла.

Операторы журнала определены в такойспособ компиляции указателей на эти строки, и сами значения указателя (или смещения от базового адреса, если это экономит место), которые хранятся в журнале.

Секция раздетых строк может затем использоваться длявосстановить полную строку журнала из значений в сокращенном журнале.

Естественно, что конкретные средства достижения этого различаются для разных платформ, наборов инструментов и т. д. и усложняются включением нелитеральных данных в записи журнала.- но все это вполне осуществимо во встроенном контексте.

...