From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21707 invoked by alias); 19 Jun 2014 14:44:53 -0000 Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org Received: (qmail 21695 invoked by uid 89); 19 Jun 2014 14:44:52 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.8 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mexforward.lss.emc.com Received: from mailuogwhop.emc.com (HELO mexforward.lss.emc.com) (168.159.213.141) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Thu, 19 Jun 2014 14:44:51 +0000 Received: from hop04-l1d11-si01.isus.emc.com (hop04-l1d11-si01.isus.emc.com [10.254.111.54]) by mexforward.lss.emc.com (Switch-3.4.3/Switch-3.4.3) with ESMTP id s5JEilYx006463 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Thu, 19 Jun 2014 10:44:47 -0400 Received: from mailhub.lss.emc.com (mailhubhoprd06.lss.emc.com [10.254.222.130]) by hop04-l1d11-si01.isus.emc.com (RSA Interceptor) for ; Thu, 19 Jun 2014 10:44:36 -0400 Received: from usendtaylorx2l.lss.emc.com (usendtaylorx2l.lss.emc.com [10.243.10.188]) by mailhub.lss.emc.com (Switch-3.4.3/Switch-3.4.3) with ESMTP id s5JEiavp032587 for ; Thu, 19 Jun 2014 10:44:36 -0400 Received: by usendtaylorx2l.lss.emc.com (Postfix, from userid 26043) id 315B55CD231; Thu, 19 Jun 2014 10:44:34 -0400 (EDT) Received: from usendtaylorx2l (localhost [127.0.0.1]) by usendtaylorx2l.lss.emc.com (Postfix) with ESMTP id 98A245CD226 for ; Thu, 19 Jun 2014 10:44:34 -0400 (EDT) From: David Taylor To: gdb@sourceware.org Subject: gdb remote protocol breakpoints (Z0 command) Date: Thu, 19 Jun 2014 14:44:00 -0000 Message-ID: <20417.1403189074@usendtaylorx2l> X-EMM-MHVC: 1 X-RSA-Classifications: DLM_1, public X-IsSubscribed: yes X-SW-Source: 2014-06/txt/msg00053.txt.bz2 In the manual the Z0 (insert memory breakpoint) command is summarized thusly: Z0,addr,kind[;cond_list...][;cmds:persist,cmd_list...] Now, cond_list 'is comprised of a series of expressions, concatenated without separators. Each expression has the following form: X len,expr len is the length of the bytecode expression and expr is the actual conditional expression in bytecode form. That part is fine. Most of the time when I want a conditional breakpoint, the expression is expressible in bytecode form. (In fact, while I won't attest that they've always been so expressible, I don't recall any that weren't so expressible). But, it then goes on to describe cmd_list in similar terms. There are many things you might want to do at a breakpoint that lack bytecode operators. Just for starters, . there is no bytecode operator for setting memory . there is no bytecode operator for setting registers . there is no bytecode operator for calling arbitrary functions . there is no 'continue' option (as in: ``after performing the requested commands, continue the current thread'') There are other capabilities that I would like as well, but without the four mentioned above, I don't consider it very useful at all. Has anyone else thought about these issuses and possibly sketched out extensions to allow such capabilities? [The 'continue' command would likely be an extension to the Z0 command, the others would likely be extensions to the bytecode language.] If we (EMC) were to do something in our gdb and/or remote stub, I would want it to be compatible with what others are doing / thinking of doing. Thanks. David -- David Taylor dtaylor at emc dot com