On 2024/02/06 6:18, nilayvaish(a)google.com wrote:
> On 2024/01/30 9:24, 
nilayvaish(a)google.com wrote:
>
> thanks for the information.
>
> I can see that there is the orc_header symbol and data also in a vmcore,
> so maybe it can be read easily:
>
> crash> whatis orc_header
> const u8 orc_header[20];
> crash> rd -8 orc_header 20
> ffffffffb718ef94:  fe 5d 32 bf 58 1b d6 3b 2c a9 a5 c6 5b a5 a6 25   ...
> ffffffffb718efa4:  ea b3 fe 24
>
> but it's a hash, not a version number, how are you going to use this?
>
> Does crash have to have all historical hash values?  all of format
> changes do not affect crash's unwinder though.
>
> Thanks,
> Kazu
 
 Hi Kazu
 
 I am thinking of comparing the hashes to figure the ORC format in use.  This would be
similar to how the drgn tool does things:
https://github.com/osandov/drgn/commit/0d6438d994a4c46c4a08b73a98c637f5bc....
 
 Similar to how you printed the orc_header using the crash command line, if you can point
out how to do so in a programmatic fashion, that would be great.
 
for example, you can get it like this in x86_64_ORC_init.
   unsigned char buf[20];
   if (try_get_symbol_data("orc_header", sizeof(buf), buf)) {
       ...
It's good to be able to notice the change of the ORC format easily, but 
not all of changes affect crash, so for unknown values I think it should 
be a warning at most.
Thanks,
Kazu