[PATCH] libcamera: yaml_parser: Output more details when parsing fails
Kieran Bingham
kieran.bingham at ideasonboard.com
Wed Dec 4 12:34:39 CET 2024
Quoting Stefan Klug (2024-12-04 11:10:13)
> On malformed yaml files, the yaml parser only errors out without giving
> details on the error that happened. Fix that by providing a more detailed
> error message.
>
> Output old:
>
> ERROR YamlParser yaml_parser.cpp:886 Failed to parse YAML content from /root/imx283.yaml
>
> Output new:
>
> ERROR YamlParser yaml_parser.cpp:627 /root/imx283.yaml:72:8 could not find expected ':' while scanning a simple key
Well, I can't say no to that!
Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> ERROR YamlParser yaml_parser.cpp:886 Failed to parse YAML content from /root/imx283.yaml
>
> Signed-off-by: Stefan Klug <stefan.klug at ideasonboard.com>
> ---
> src/libcamera/yaml_parser.cpp | 11 ++++++++++-
> 1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/src/libcamera/yaml_parser.cpp b/src/libcamera/yaml_parser.cpp
> index db256ec5b04d..f9302c4ee3fa 100644
> --- a/src/libcamera/yaml_parser.cpp
> +++ b/src/libcamera/yaml_parser.cpp
> @@ -509,8 +509,17 @@ YamlParserContext::EventPtr YamlParserContext::nextEvent()
> EventPtr event(new yaml_event_t);
>
> /* yaml_parser_parse returns 1 when it succeeds */
> - if (!yaml_parser_parse(&parser_, event.get()))
> + if (!yaml_parser_parse(&parser_, event.get())) {
> + File *file = static_cast<File *>(parser_.read_handler_data);
> +
> + LOG(YamlParser, Error) << file->fileName() << ":"
> + << parser_.problem_mark.line << ":"
> + << parser_.problem_mark.column << " "
> + << parser_.problem << " "
> + << parser_.context;
> +
> return nullptr;
> + }
>
> return event;
> }
> --
> 2.43.0
>
More information about the libcamera-devel
mailing list