This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Function arguments question on ARM (RaspPi)


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]