From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7097 invoked by alias); 15 Nov 2005 15:34:39 -0000 Received: (qmail 7039 invoked by uid 22791); 15 Nov 2005 15:34:34 -0000 Received: from main.gmane.org (HELO ciao.gmane.org) (80.91.229.2) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Tue, 15 Nov 2005 15:34:34 +0000 Received: from list by ciao.gmane.org with local (Exim 4.43) id 1Ec2gu-00063o-2o for gdb@sources.redhat.com; Tue, 15 Nov 2005 16:25:48 +0100 Received: from zigzag.lvk.cs.msu.su ([158.250.17.23]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 15 Nov 2005 16:25:47 +0100 Received: from ghost by zigzag.lvk.cs.msu.su with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 15 Nov 2005 16:25:47 +0100 To: gdb@sources.redhat.com From: Vladimir Prus Subject: Re: libGDB and gdbserver questions Date: Tue, 15 Nov 2005 15:34:00 -0000 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7Bit User-Agent: KNode/0.8.2 Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2005-11/txt/msg00297.txt.bz2 Donny Kurniawan wrote: > Hello, > > I am trying to write a remote debugger for multiple processes. As far > as I know, most of the parallel debuggers (that use GDB as the > backend), use multiple instances of GDB, where each instance controls > one process. > > The problem is: I want to be able to handle a lot of processes (1000 > processes is the minimum), clearly having 1000 instances of GDB > controlling 1000 processes is not very scalable, and it will choke the > "master UI controller" (that controls GDBs). I'm not sure what you mean about "master UI controller". The biggest scalability problem is that each gdb will load symbol table for your program, and for real program that might take 100M of memory. Multiply that by 1000 and you need 64-bit box. However, it's not likely that you have 1000 different programs. If you have two programs, and each one is run on 500 machines, you can start two copies of gdb. Then each copy of gdb would connect to a "redirector" you can write, that will basically forward all packets to invididual instances of gdbserver. But it will present those 500 instances as 500 threads, and gdb can work with threads more or less fine. As least, that what I plan to do for multi-program debugging. - Volodya