I think it is worth to paste the messages while "SyscallVerbose,IntRegs,Stack,Thread,X86,ExecAll" flags are on:
339054000: system.cpu + A0 T0 : 0x83d48d.4 : CALL_NEAR_I : wrip , t7, t1 : IntAlu : 339054500: system.cpu.[tid:0]: Setting int reg 16 (16) to 0. 339054500: global: The data size is 8 339054500: system.cpu.[tid:0]: Reading int reg 10 (10) as 0xbb3ac0. 339054500: system.cpu.[tid:0]: Reading int reg 1 (1) as 0x22. 339054500: system.cpu.[tid:0]: Reading int reg 10 (10) as 0xbb3ac0. 339054500: global: Picking with size 8 339054500: system.cpu.[tid:0]: Setting int reg 10 (10) to 0x22. 339054500: system.cpu + A0 T0 : 0x852f90 : mov r10, rcx 339054500: system.cpu + A0 T0 : 0x852f90.0 : MOV_R_R : mov r10, r10, rcx : IntAlu : D=0x0000000000000022 339055000: system.cpu.[tid:0]: Setting int reg 16 (16) to 0. 339055000: system.cpu.[tid:0]: Setting int reg 0 (0) to 0x9. 339055000: system.cpu + A0 T0 : 0x852f93 : mov eax, 0x9 339055000: system.cpu + A0 T0 : 0x852f93.0 : MOV_R_I : limm eax, 0x9 : IntAlu : D=0x0000000000000009 339055500: system.cpu.[tid:0]: Setting int reg 16 (16) to 0. 339055500: system.cpu.[tid:0]: Reading int reg 0 (0) as 0x9. 339055500: system.cpu.[tid:0]: Reading int reg 7 (7) as 0. 339055500: system.cpu.[tid:0]: Reading int reg 6 (6) as 0x4d00001e4ce4b000. 339055500: system.cpu.[tid:0]: Reading int reg 2 (2) as 0x3. 339055500: system.cpu.[tid:0]: Reading int reg 10 (10) as 0x22. 339055500: system.cpu: syscall mmap called w/arguments 34,3,5548434871059525632,0 339055500: system.cpu.[tid:0]: Reading int reg 7 (7) as 0. 339055500: system.cpu.[tid:0]: Reading int reg 6 (6) as 0x4d00001e4ce4b000. 339055500: system.cpu.[tid:0]: Reading int reg 10 (10) as 0x22. 339055500: system.cpu.[tid:0]: Reading int reg 8 (8) as 0xffffffff. Int register 6 has odd value I think. Thanks for any comment. On 4/28/12, Steve Reinhardt <ste...@gmail.com> wrote: > On Sat, Apr 28, 2012 at 9:43 AM, Mahmood Naderan > <mahmood...@gmail.com>wrote: > >> why the 'length' is so much large? >> > > That is indeed the question. > > My guess is that there's some bug in the way we're interpreting the syscall > arguments being passed in from the application (via registers or on the > stack). > > You could use strace on the application running natively to see what the > mmap arguments should be. > > Then it's mostly a matter of poking around to see at what point things are > getting confused about the value. Do the register contents look right on > entry to the syscall? What is getSyscallArg doing, and where is it getting > that ridiculous value from? At this point, there's probably no substitute > for single-stepping through some of this code with gdb. > > I'm not familiar enoiugh with the x86 ABI to say off the top of my head > where that argument is being passed. Anyone? > > Steve > -- // Naderan *Mahmood; _______________________________________________ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users