Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , 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: <3D3E2965.9090905@jtcsv.com> Date: Tue, 23 Jul 2002 21:13:25 -0700 From: Vladimir Weinstein User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.1b) Gecko/20020723 X-Accept-Language: sr, en-us, en MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Debugging dlls using gdb - cannot break inside library function Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hello, I'm trying to port icu (http://oss.software.ibm.com/icu) to cygwin. I need to debug one of the libraries dlls. The problem is, gdb just skips over the calls to the library. I'm able to set a breakpoint on a function inside a library or on a line in library code. However, gdb never stops on these. It is aware where the source files are and it is obvious that the symbols are loaded properly - otherwise I wouldn't be able to set the breakpoint. Here is a part of the build log: .... c++ -I. -D_REENTRANT -I. -I/icu/source/common -D_REENTRANT -DUDATA_MAP -DHAVE_CONFIG_H -DU_LIBICUDATA_NAME=\"icudt22l\" -DU_COMMON_IMPLEMENTATION -g -c -DPIC -o util.o /icu/source/common/util.cpp gcc -I. -D_REENTRANT -I. -I/icu/source/common -D_REENTRANT -DUDATA_MAP -DHAVE_CONFIG_H -DU_LIBICUDATA_NAME=\"icudt22l\" -DU_COMMON_IMPLEMENTATION -g -c -DPIC -o uenum.o /icu/source/common/uenum.c c++ -DHAVE_CONFIG_H -DU_LIBICUDATA_NAME=\"icudt22l\" -DU_COMMON_IMPLEMENTATION -I. -D_REENTRANT -I. -I/icu/source/common -D_REENTRANT -DUDATA_MAP -g -shared -Wl,-soname -Wl,libicuuc.dll.22 -o libicuuc.dll.22.0 putil.o uobject.o locmap.o mutex.o umutex.o udata.o ucmndata.o udatamem.o umapfile.o filestrm.o uresbund.o uresdata.o resbund.o cwchar.o uloc.o locid.o uhash.o uhash_us.o ucnv.o ucnv_bld.o ucnv_cb.o ucnv_cnv.o ucnv_err.o ucnv_io.o ucnvlat1.o ucnv_u7.o ucnv_u8.o ucnv_u16.o ucnv_u32.o ucnvmbcs.o ucnv2022.o ucnvhz.o ucnv_lmb.o ucnvscsu.o ucnvbocu.o ucnvisci.o unistr.o utf_impl.o ustring.o ustrcase.o cstring.o ustrfmt.o ustrtrns.o normlzr.o unorm.o chariter.o schriter.o uchriter.o uiter.o uchar.o uprops.o bidi.o ubidi.o ubidiwrt.o ubidiln.o ushape.o unames.o ucln_cmn.o uscript.o usc_impl.o umemstrm.o ucmp8.o uvector.o digitlst.o brkiter.o brkdict.o ubrk.o dbbi.o dbbi_tbl.o rbbi.o rbbidata.o rbbinode.o rbbirb.o rbbiscan.o rbbisetb.o rbbistbl.o rbbitblb.o unicode.o convert.o utrie.o uset.o unifilt.o unifunct.o uniset.o upropset.o usetiter.o util.o uenum.o -L../data/out -L../stubdata -licudata -lpthread -lm Here is the nm output for one of the C functions I'm trying to step in: 10007ea0 T _ures_open_2_2 One of the interesting C++ methods: mangled 10009ad4 T _getString__CQ27icu_2_214ResourceBundleR10UErrorCode demangled 10009ad4 T icu_2_2::ResourceBundle::getString(UErrorCode &) const If I try to put a breakpoint at ures open, I get correct response from gdb: (gdb) b ures_open_2_2 Breakpoint 4 at 0x10007ea9: file /icu/source/common/uresbund.c, line 1404. But the execution never stops there. I can even put a bp on a line inside the library function - also without a result. All the library functions are included as extern __declspec(dllimport) ... What am I doing wrong? Thanks, v. -- Vladimir Weinstein, IBM GCoC-Unicode/ICU San Jose, CA weiv AT jtcsv DOT com -- 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/