The recent changes in the 2.6.22-rc2 kernel to the write protection of read only
data enable by CONFIG_DEBUG_RODATA prevents kprobes from working. At least on
the on i386 and x86_64 machine the mark_rodata_ro() function marks memory
starting from _text as read only. Thus, when kprobes attempts to write a break
point into a location in the kernel it faults.
There is a description of the problem at:
http://sources.redhat.com/bugzilla/show_bug.cgi?id=4531
Shouldn't mark_rodata_ro be less agressive when CONFIG_KPROBES is enabled? Or
should kprobes temporarily change the page to be writeable, set the break point,
and then return the page to read only?
-Will
William Cohen <[email protected]> writes:
>
> Shouldn't mark_rodata_ro be less agressive when CONFIG_KPROBES is
> enabled? Or should kprobes temporarily change the page to be
> writeable, set the break point, and then return the page to read only?
The later.
-Andi