A problem debugging libraries

Simon Marchi simon.marchi@ericsson.com
Fri Mar 17 18:57:00 GMT 2017


On 17-03-17 09:35 AM, Tommi Höynälänmaa wrote:
> I'm writing software using libraries liboctave, LAPACK, and BLAS.
> I added function dnrm2alt1 to blas and changed lapack to use that 
> instead of dnrm2. When I try to debug a program using blas "break 
> dnrm2_" works in gdb but "break dnrm2alt1_" does not. Gdb can't find 
> function dnrm2alt1_. Can anybody tell what is wrong?
> 
> Here are outputs of some commands:
> 
> ---cut here---
> tohoyn@tohoyn-laptop:~/tyo/omat/aallokkeet/libinterp3d1$ 
> update-alternatives --config libblas.so.3
> There are 2 choices for the alternative libblas.so.3 (providing 
> /usr/lib/libblas.so.3).
> 
>    Selection    Path                                    Priority   Status
> ------------------------------------------------------------
>    0            /usr/lib/atlas-base/atlas/libblas.so.3   35        auto mode
>    1            /usr/lib/atlas-base/atlas/libblas.so.3   35 
> manual mode
> * 2            /usr/lib/libblas/libblas.so.3            10        manual 
> mode
> 
> Press enter to keep the current choice[*], or type selection number:
> tohoyn@tohoyn-laptop:~/tyo/omat/aallokkeet/libinterp3d1$
> ---cut here---
> ---cut here---
> tohoyn@tohoyn-laptop:~/tyo/omat/aallokkeet/libinterp3d1$ 
> update-alternatives --config liblapack.so.3
> There are 2 choices for the alternative liblapack.so.3 (providing 
> /usr/lib/liblapack.so.3).
> 
>    Selection    Path                                      Priority   Status
> ------------------------------------------------------------
> * 0            /usr/lib/lapack/liblapack.so.3             10        auto 
> mode
>    1            /usr/lib/atlas-base/atlas/liblapack.so.3   5 
> manual mode
>    2            /usr/lib/lapack/liblapack.so.3             10 
> manual mode
> 
> Press enter to keep the current choice[*], or type selection number:
> tohoyn@tohoyn-laptop:~/tyo/omat/aallokkeet/libinterp3d1$
> ---cut here---
> ---cut here---
> tohoyn@tohoyn-laptop:/usr/lib/libblas$ objdump -T libblas.so.3.0 | grep 
> -i dnrm2
> 0000000000040320 g    DF .text	0000000000000011  Base        dnrm2sub_
> 000000000000fd50 g    DF .text	000000000000002b  Base        cblas_dnrm2
> 0000000000040220 g    DF .text	000000000000006b  Base        dnrm2_
> 0000000000040290 g    DF .text	0000000000000084  Base        dnrm2alt1_
> tohoyn@tohoyn-laptop:/usr/lib/libblas$
> ---cut here---
> ---cut here---
> tohoyn@tohoyn-laptop:/usr/lib/lapack$ objdump -T liblapack.so.3.0 | grep 
> -i dnrm2
> 0000000000000000      DF *UND*	0000000000000000              dnrm2alt1_
> tohoyn@tohoyn-laptop:/usr/lib/lapack$
> ---cut here---
> 
>       - Tommi H.
> 

Hi Tommi,

You can try to use "info shared" to see which library is effectively loaded in your
program and see if it matches your expectations.  You can also type "reak dnrm2" and
<tab> to see what symbols GDB knows about.

Simon



More information about the Gdb mailing list