delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2002/05/16/14:29:25

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Message-ID: <3CE3FA56.9030701@onevision.de>
Date: Thu, 16 May 2002 20:28:38 +0200
From: Roland Schwingel <Roland DOT Schwingel AT onevision DOT de>
Organization: OneVision Software AG
User-Agent: Mozilla/5.0 (Windows; U; WinNT4.0; de-DE; rv:0.9.4) Gecko/20011128 Netscape6/6.2.1
X-Accept-Language: de-DE
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Problem with gdb and DLLs and their symbols when setting breakpoints

Hi....

===============================================================
Maybe it is a little bit offtopic, but maybe somewhere knows also what 
to do.
I posted the same mail to the gdb mailinglist as well.
===============================================================

I am working on a rather big project consisting of about 170 modules 
each is a shared library.

On Windows everything is compiled under cygwin for mingwin into dlls. 
For debugging I am
using gdb from cygwin. But there is a problem. I have also tried a 
couple of other versions
of gdb/Insight from 5.0 to 5.2 beside the one that comes with cygwin.

When the dlls are loaded they sometimes get relocated because of 
collisions with other
dlls (even they are all linked with  --enable-auto-image-base). Thats ok 
so far, the app
is of course running. BUT it appears that only the code is relocated but not
the symbols....

For being more easy: Imagine an application with 2 dlls called a.dll and 
b.dll with
overlapping  base addresses so the collide when loading.
So
a.dll gets loaded.
b.dll will be loaded and relocated.

And now try to set a breakpoint somewhere in b.dll.
When saying something like that
(gdb) b aFileFromBDll.m:2344
everything is ok at first, but when looking
where the breakpoint is set it is not set in b.dll, but it is set 
somewhere in a.dll.
When continuing the breakpoint in a.dll is reached but of course not
the desired one in b.dll

Thats truely bad. Is there someone who knows what to do?
(Except giving each dll a unique non overlapping addressspace and so 
preventing collisions).

Can the symbol tables be relocated also?

Many thanks in advance,

Roland Schwingel


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019