Function arguments question on ARM (RaspPi)
Frank Ch. Eigler
fche@redhat.com
Mon Dec 21 15:17:00 GMT 2015
Hi, Thomas -
tom.winkler wrote:
> [...]
> static int mydrv_i2c_read(struct i2c_client *client, uint8_t reg,
> uint8_t *buf, uint8_t count);
> [...]
> The output I get is as follows:
>
> client=0x80576a00 reg=0x80 buf=0x9553be68 count=0x57
> u_arg_1: 0xb5e1f800
> u_arg_2: 0x24
> u_arg_3: 0x9553bea7
> u_arg_4: 0x1
> [...] I would have expected that the values I get when printing out
> $$parms are identical to those when using the _arg() functions. I
> know that the values I get via the _arg() functions are the correct
> ones but I don't understand why $$parms is wrong. [...]
Yeah, assumig you're right about the _arg* ones being correct, this
should not be happening. $$parms works based on dwarf debuginfo;
_arg* works on hard-coded-in-tapset abi assumptions. They should
normally match.
To diagnose further, we'd need to see more info, such as a disassembly
of the first part of that function, the debuginfo for same (readelf -w)
including related location-list data, stap/kernel version, stap -p3 output.
- FChE
More information about the Systemtap
mailing list