[lldb/crashlog] Refactor CrashLogParser into a Factory pattern
authorMed Ismail Bennani <medismail.bennani@gmail.com>
Thu, 12 Jan 2023 23:26:49 +0000 (15:26 -0800)
committerMed Ismail Bennani <medismail.bennani@gmail.com>
Fri, 13 Jan 2023 03:20:51 +0000 (19:20 -0800)
commit6b26e1dad9608ec188446dcdc0734a7b41cf145b
treeb0ba2ace421488177f5a36bbcfe84eb6e69dedcd
parentafb613e9e7b737648ac8ea0d3138d0d498c95553
[lldb/crashlog] Refactor CrashLogParser into a Factory pattern

This patch should fix an undefined behaviour that's happening when
parsing a crash report from an IDE. In the previous implementation, the
CrashLogParser base class would use the `__new__` static class method to
create the right parser instance depending on the crash report type.

For some reasons, the derived parser initializer wouldn't be called when
running the command from an IDE, so this patch refactors the
CrashLogParser code to replace the use of the `__new__` method with a
factory `create` static method.

rdar://100527640

Differential Revision: https://reviews.llvm.org/D139951

Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
lldb/examples/python/crashlog.py
lldb/examples/python/scripted_process/crashlog_scripted_process.py