From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2578 invoked by alias); 10 Jul 2007 10:37:59 -0000 Received: (qmail 2555 invoked by uid 48); 10 Jul 2007 10:37:48 -0000 Date: Tue, 10 Jul 2007 10:37:00 -0000 From: "mark at klomp dot org" To: frysk-bugzilla@sourceware.org Message-ID: <20070710103748.4762.mark@klomp.org> Reply-To: sourceware-bugzilla@sourceware.org Subject: [Bug general/4762] New: Instruction parser (x86/x86_64) for single stepping out of line framework X-Bugzilla-Reason: AssignedTo Mailing-List: contact frysk-bugzilla-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Post: List-Help: , Sender: frysk-bugzilla-owner@sourceware.org X-SW-Source: 2007-q3/txt/msg00077.txt.bz2 List-Id: See the following thread: http://sourceware.org/ml/frysk/2007-q3/msg00018.html >- Instruction Parser. The framework is in place and works for the few > Instructions that are known to the instruction parse, but there are all > hand coded (see IA32InstructionParser which just handles NOP, INT3, RETQ > and one JMP variant, the X8664Instruction just delegates to the IA32 for > now). There don't seem to be libraries available to easily plugin that > would give us the fixup instructions needed. The best available is the > kprobes examples from the linux kernel which have as drawback that they > are coded to be intimately tied to the kernel/C way of doing things and > only handles instructions found in kernel space. For uprobes this should > have been extended to handle every instruction that can occur in user > space, but I haven't seen that work yet (and apparently is only > available for x86 and no other architecture at this time). Any > alternatives to look at would be appreciated. Otherwise I need to sit > down with the various instruction manuals and just code it up by hand. > (Bonus points for finding something that would not just give us ssol > fixups but also simulation of instructions when hooked to the registers > and memory of a Task). > I haven't found a library yet that is suitable for providing fixup information and determining instruction validity that is usable by Frysk. Without it the ssol framework is kind of fake and we fall back to reset-stepping breakpoints, but without stop-the-world, so it keeps being unreliable. The problem with the current kprobes (and by extension uprobes) approach at the moment is that it isn't robust in the face of arbitrary user space instructions. So I will probably end up writing it myself for x86/x86_64 as suggested by Roland in this systemtap/uprobe message: http://sourceware.org/ml/systemtap/2007-q1/msg00571.html -- Summary: Instruction parser (x86/x86_64) for single stepping out of line framework Product: frysk Version: unspecified Status: NEW Severity: normal Priority: P2 Component: general AssignedTo: frysk-bugzilla at sourceware dot org ReportedBy: mark at klomp dot org http://sourceware.org/bugzilla/show_bug.cgi?id=4762 ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee.