There is no easy way to do this.
What you need to do is find the ABI for your platform and then use this to understand the argument passing convention. This is not always easy, but it can be done. This will show you how to find the arguments, regardless of whether they are in registers or in memory; and then you can use casting to the appropriate types to print them. A.
Of course, casting can also be difficult if you don't have debuginfo. Although there is a trick: compile a dummy file with -g that has the types you need, and then symbol-file in gdb to access these types. This, of course, has reservations, you must use the correct compiler and library versions, fix the compiler target and flags that change the ABI, etc.
In fact, itβs much, much better to plan ahead and always have debugging information. Which will not help you now, but maybe in the future. The ability to send a program, but save debugging information that is available later, is mainly the reason why the debuginfo delimiter was developed.
In addition, it is worth noting that the output of gdb frame not changed much since the days that are long gone are deleted. I think the arglist and locals information is really pointless with DWARF and modern ABIs. There the gdb error is open about fixing this.
source share