我正在调试一个程序(在Solaris中)可能正在写入标记为只读的内存,但我不确定如何确定该内存页面是否实际标记为只读。
我可以用gdb做出决定吗?如果没有,我可以使用什么?
答案 0 :(得分:2)
在Solaris上,您可以使用pmap命令查看进程的地址空间,例如: pmap <pid>
。这将显示每个映射的r / w / x权限;以及其他信息。
Solaris手册页中的示例:
$ pmap 102905 102905: sh 00010000 192K r-x-- /usr/bin/ksh 00040000 8K rwx-- /usr/bin/ksh 00042000 40K rwx-- [ heap ] FF180000 664K r-x-- /usr/lib/libc.so.1 FF236000 24K rwx-- /usr/lib/libc.so.1 FF23C000 8K rwx-- /usr/lib/libc.so.1 FF250000 8K rwx-- [ anon ] ... total 1880K
答案 1 :(得分:1)