Hello Folks,


        I am a new starter of MARSS. I have a quiz and I would like to ask
you for some help.



The quiz is about the interaction between QEMU and PTLsim. I use GDB to
observe the interaction.

In my experiments, I try to use QEMU boot an custom Image (a primitive
Image of Debian for x86_64) and execute start_sim and stop_sim as usual.



Notice that I recompile start_sim and stop_sim on my custom image.

In the beginning, QEMU can successfully boot the custom image to run
start_sim.

Then the program throws a segmentation fault while PTLsim is ending
start_sim.

However, I can successfully run the the same executable program on the
ubuntu image that MARSS provides.

Because I use the same executable programs (start_sim and stop_sim), the
executable program should be compatible.



Since I use the same executable files and they are compatible for two
images, the result lets me confuse.



Could you kindly help me to figure out where the problem is. Thanks a lot.





Oh~ The followings are the messages of my experiment



ptlcall_mmio_write: calltype 2 at rip 4197283 (inside_ptlsim = 0 )

PTLCALL type PTLCALL_ENQUEUE

MARSSx86::Command received : -run

context 0 is : VCPU State:

  Architectural Registers:

  rax    0x0000000000000002  rcx    0x0000000000000001  rdx
0x0000000000000001  rbx    0x00007fff475dcdc0

  rsp    0x00007fff475dcd40  rbp    0x00007fff475dcd90  rsi
0x0000000000000001  rdi    0x00007fff475dcdc0

  r8     0x0000000000000000  r9     0x0000000000000000  r10
0x0000000000000000  r11    0x0000000000000246

  r12    0x0000000000400830  r13    0x00007fff475dcef0  r14
0x0000000000000000  r15    0x0000000000000000

  xmml0  0x252074726976202c  xmmh0  0x0000000000000000  xmml1
0x0000000000000010  xmmh1  0x0000000000000d01

  xmml2  0x0023001000000000  xmmh2  0x0000000000000000  xmml3
0x0000000000000000  xmmh3  0xffffffff81010ab0

  xmml4  0xffffffff81037360  xmmh4  0x0000000000000000  xmml5
0x0000000000000000  xmmh5  0x0007010600070106

  xmml6  0x0000000000000014  xmmh6  0x0000000000000000  xmml7
0x0000000000000000  xmmh7  0x0000000000000000

  xmml8  0x0000000000000000  xmmh8  0x0000000000000000  xmml9
0x0000000000000000  xmmh9  0x0000000000000000

  xmml10 0x0000000000000000  xmmh10 0x0000000000000000  xmml11
0x0000000000000001  xmmh11 0xffff880005400000

  xmml12 0x0000f7fec2436000  xmmh12 0x0000000000401000  xmml13
0x00007fffbccfd000  xmmh13 0xffffffffffffffff

  xmml14 0x0000f7fea2436000  xmmh14 0xffff880005403000  xmml15
0x0000f7fec2436000  xmmh15 0xffff880005404000

  fptos  0x0000000000000000  fpsw   0x0000000000000000  fptags
0x0000000000000000  fpstack 0x0000000000000000

  msr    0xffffffffffffffff  dlptr  0xffffffffffffffff  trace
0x0000000000000000  ctx    0x0000000001741590

  rip    0x0000000000400c71  flags  0x0000000000000000  dlend
0xffffffffffffffff  selfrip 0x0000000000000000

  nextrip 0x0000000000000000  ar1    0x0000000000000000  ar2
0x0000000000000000  zero   0x0000000000000000

  Flags:

    Running?   blocked

    Mode:      user

    32/64:     32-bit x86

    IntEFLAGS: 00000000 (df 0)

    hflags: 0040c2b7 (QEMU internal flags)

  Segment Registers:

    cs  selector [51] base [0] limit [4294967295] flags [10550016]

    ss  selector [43] base [0] limit [4294967295] flags [12645120]

    ds  selector [0] base [0] limit [0] flags [0]

    es  selector [0] base [0] limit [0] flags [0]

    fs  selector [0] base [139889874851616] limit [0] flags [0]

    gs  selector [0] base [0] limit [0] flags [0]

  Segment Control Registers:

  Control Registers:

    cr0 2147811379

    cr2 00007f3aa57e9a7c  fault virtual address

    cr3 000000011c140000  page table base (mfn 1163584)

    cr4 1776

  Debug Registers:

    dr0 0000000000000000  dr1 0000000000000000  dr2 0000000000000000  dr3
0000000000000000

    dr4 0000000000000000  dr5 0000000000000000  dr6 0000000000000000  dr7
0000000000000000

  Callbacks:

  Exception and Event Control:

    exception -1  errorcode 00000014

  FPU:

    FP Control Word: 0x0000037f

    MXCSR:           0x00001f80

    fp7  st(7)  Valid  0x4000000000000000 => 2

    fp6  st(6)  Valid  0x4000000000000000 => 2

    fp5  st(5)  Valid  0x4000000000000000 => 2

    fp4  st(4)  Valid  0x4000000000000000 => 2

    fp3  st(3)  Valid  0x4000000000000000 => 2

    fp2  st(2)  Valid  0x4000000000000000 => 2

    fp1  st(1)  Valid  0x4000000000000000 => 2

    fp0  st(0)  Valid  0x4000000000000000 => 2

  Internal State:

    Last internal exception: 0x0000000000000000 (NoException)



  Completed             0 cycles,             0 commits:         0
Hz,         0 insns/sec: rip 0000000000400c71[Thread 0x7ffeb99b6700 (LWP
21707) exited]

  Completed       1210000 cycles,        429424 commits:    131069 Hz,
72844 insns/sec: rip ffffffff811952b4[New Thread 0x7ffeb99b6700 (LWP 21708)]

  Completed       1750000 cycles,        785082 commits:     63720 Hz,
28145 insns/sec: rip ffffffff810ef9fc[Thread 0x7ffeb99b6700 (LWP 21708)
exited]

  Completed       3560000 cycles,       2258316 commits:     98781 Hz,
29634 insns/sec: rip ffffffff81205776

Program received signal SIGSEGV, Segmentation fault.

0x0000000000479309 in ioport_write (index=1, address=485163988, data=4366)
at qemu/ioport.c:78

78        IOPortWriteFunc *func = ioport_write_table[index][address];
_______________________________________________
http://www.marss86.org
Marss86-Devel mailing list
[email protected]
https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel

Reply via email to