g*******y 发帖数: 1930 | 1 linux下的SIGSEGV信号无法知道是读还是写操作引起的page fault,windows下貌似
access violation exception也无法区分(not sure about this)。难道就没有方法得知到底是引
起page fault的操作是读还是写吗?
求教版上高手!最近一个course project做distributed shared memory,所以需要这个信息,多
谢! |
d****p 发帖数: 685 | 2 if you can launch gdb, then you can find where the crash occurred and
disassemble the instruction to see whether it is a write or read.
for example, if the segmentation fault happens at 0x0000000000400538,
use disas 0x0000000000400538 to check the instruction.
Program received signal SIGSEGV, Segmentation fault.
0x0000000000400538 in main ()
(gdb) disas 0x0000000000400538
Dump of assembler code for function main:
0x0000000000400528 : push %rbp
0x0000000000400529 : mov |
t****t 发帖数: 6806 | 3 对x86来说, 本来CPU的GP fault就没有这个信息.
Page-Fault有一定的信息, 但是通常OS不会pass给用户.
得知到底是引
这个信息,多
【在 g*******y 的大作中提到】 : linux下的SIGSEGV信号无法知道是读还是写操作引起的page fault,windows下貌似 : access violation exception也无法区分(not sure about this)。难道就没有方法得知到底是引 : 起page fault的操作是读还是写吗? : 求教版上高手!最近一个course project做distributed shared memory,所以需要这个信息,多 : 谢!
|
g*******y 发帖数: 1930 | 4 谢谢了。不过我不是想调试,而是想针对不同的page fault改变default处理从而实现
共享内存空间分布
式系统
【在 d****p 的大作中提到】 : if you can launch gdb, then you can find where the crash occurred and : disassemble the instruction to see whether it is a write or read. : for example, if the segmentation fault happens at 0x0000000000400538, : use disas 0x0000000000400538 to check the instruction. : Program received signal SIGSEGV, Segmentation fault. : 0x0000000000400538 in main () : (gdb) disas 0x0000000000400538 : Dump of assembler code for function main: : 0x0000000000400528 : push %rbp : 0x0000000000400529 : mov
|
g*******y 发帖数: 1930 | 5 唉,看来没办法了,只有在linux用sigsegv + sigaction了...
【在 t****t 的大作中提到】 : 对x86来说, 本来CPU的GP fault就没有这个信息. : Page-Fault有一定的信息, 但是通常OS不会pass给用户. : : 得知到底是引 : 这个信息,多
|
t****t 发帖数: 6806 | 6 assume you know the information. what do you want to do then?
【在 g*******y 的大作中提到】 : 谢谢了。不过我不是想调试,而是想针对不同的page fault改变default处理从而实现 : 共享内存空间分布 : 式系统
|
g*******y 发帖数: 1930 | 7 implement some kind of invalidation approach similar to the one used for
cache
coherence
a page could be in one of 3 states: shared, exclusive, invalid. state
transition would be stimulated by read/write operation.
【在 t****t 的大作中提到】 : assume you know the information. what do you want to do then?
|