From owner-freebsd-hackers@FreeBSD.ORG Sun May 30 17:21:35 2010 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 53D8A1065672 for ; Sun, 30 May 2010 17:21:33 +0000 (UTC) (envelope-from bakul@bitblocks.com) Received: from mail.bitblocks.com (bitblocks.com [64.142.15.60]) by mx1.freebsd.org (Postfix) with ESMTP id 32ED88FC0A for ; Sun, 30 May 2010 17:21:32 +0000 (UTC) Received: from bitblocks.com (localhost.bitblocks.com [127.0.0.1]) by mail.bitblocks.com (Postfix) with ESMTP id 382465B04; Sun, 30 May 2010 10:21:31 -0700 (PDT) To: =?ISO-8859-1?Q?=22C=2E_Bergstr=F6m=22?= In-reply-to: Your message of "Sun, 30 May 2010 01:27:12 +0700." <4C015C80.9050009@pathscale.com> References: <4C0108F1.5050004@pathscale.com> <20100529160155.GA3519@anja> <4C013E24.6020204@pathscale.com> <20100529165115.068AF5B58@mail.bitblocks.com> <4C0148A4.8060207@pathscale.com> <20100529175226.ECDC45B58@mail.bitblocks.com> <4C015C80.9050009@pathscale.com> Date: Sun, 30 May 2010 10:21:31 -0700 From: Bakul Shah Message-Id: <20100530172131.382465B04@mail.bitblocks.com> Cc: freebsd-hackers@freebsd.org Subject: Re: Announcing PathDB X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 May 2010 17:21:35 -0000 [Added -hackers as this may be of some interest to others. Hope you don't mind] On Sun, 30 May 2010 01:27:12 +0700 =?ISO-8859-1?Q?=22C=2E_Bergstr=F6m=22?= wrote: > ps. Tell me what you need to make it interesting and we'll try to make > it happen.. Ok, here are some "interesting" ideas! * Add a ups like interface and I will be very happy! http://ups.sourceforce.net/ Supposedly the following is needed to make it work on Linux. cvs -d:pserver:anonymous@ups.cvs.sourceforge.net:/cvsroot/ups login cvs -z3 -d:pserver:anonymous@ups.cvs.sourceforge.net:/cvsroot/ups co -P ups cd ups ./configure --enable-longlong I haven't tried this on linux but with a couple of patches it builds and runs fine on freebsd-i386. It has a built in C interpreter which is very handy; you can add C code at breakpoints for conditional bkpts or patch a variable etc. But the GUI is the best part -- I won't try explaining it, you have to experience it! Perhaps it can be used somehow? * multi-{thread,core,process,program,machine} debugging. A GUI can be very useful here as you can show state of each thread in a separate window, pop open a new window as threads or processes get created etc. Basically debugging distributed programming support! * A debugger language like say plan9 Acid's. With it for instance you can implement code coverage. See section 15 http://www.vitanuova.com/inferno/papers/acidpaper.html for the code coverage trick. Google "debugging with acid" to see more stuff. ups's c interpreter can be considered a debugger language. There is a good paper on a dataflow language for debugging from Brown U. http://www.cs.brown.edu/~sk/Publications/Papers/Published/mcskr-dataflow-lang-script-debug-journal/ * Better integration with testing. There are IDEs that integrate debugging with code development but I am not aware of any that integrates it well with testing. Testing is still a batch process. When a test fails, I want to dive right in, figure out what went wrong, fix it and rerun or continue! I admit I have the vaguest idea of even what this means. The dataflow lang paper refed may be relevant as it talks about automatic assertion checking etc. * There is a lot that can be done to improve debugging GUIs. For instance I'd love to see 3D use. Not for eye-candy but for better visualization. Things like as you zoom in, you see more details (zoom in on a function name and "enter" function body -- very Fantastic Voyage-ish (1966 movie) but for code!), control flow shows up as color change, the more a code path is visited the more it lights up or gets fatter, IPC is shown as a flash from one thread to another and so on. IIRC I have seen the color change idea in some verilog code coverage tools. -- bakul