Debug info in debian/ubuntu gnustep-examples

View: New views
6 Messages — Rating Filter:   Alert me  

Debug info in debian/ubuntu gnustep-examples

by eduardo osorio armenta-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello GNUstep community

I'm new to this list; First of all great environment/framework/tools, KUDOS to all DEVs.

I'm becoming a fan/user of WindowMaker/GNUstep in ubuntu 9.04

I hope you get me a little help/direction/url trying to get the debug symbols when compiling
the examples from gnustep-examples source in ubuntu package

after downloading the source of this package i compiled fine with
make
and run with
openapp ApplicationName.app

but trying to debug with gdb, it states that no debug info was know for every program
so i research in gnustep wiki for a HowTo cook
and found that the command

make messages=yes

produces this info, but this didn't worked for gnustep-examples programs
only for a simple HelloWorld program (using Foundation NSLog, etc)


Thanks in advance


_______________________________________________
Discuss-gnustep mailing list
Discuss-gnustep@...
http://lists.gnu.org/mailman/listinfo/discuss-gnustep

Re: Debug info in debian/ubuntu gnustep-examples

by Fred Kiefer :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Eduardo Osorio Armenta schrieb:

> Hello GNUstep community
>
> I'm new to this list; First of all great environment/framework/tools, KUDOS
> to all DEVs.
>
> I'm becoming a fan/user of WindowMaker/GNUstep in ubuntu 9.04
>
> I hope you get me a little help/direction/url trying to get the debug
> symbols when compiling
> the examples from gnustep-examples source in ubuntu package
>
> after downloading the source of this package i compiled fine with
> make
> and run with
> openapp ApplicationName.app
>
> but trying to debug with gdb, it states that no debug info was know for
> every program
> so i research in gnustep wiki for a HowTo cook
> and found that the command
>
> make messages=yes
>
> produces this info, but this didn't worked for gnustep-examples programs
> only for a simple HelloWorld program (using Foundation NSLog, etc)
>

As far as I know all GNUstep components get compiled with debug
information enabled.

The simplest way to start debuging a GNUstep application is via

debugapp ApplicationName.app

or
openapp --debug ApplicationName.app

which is what I prefer.

Hope this helps
Fred


_______________________________________________
Discuss-gnustep mailing list
Discuss-gnustep@...
http://lists.gnu.org/mailman/listinfo/discuss-gnustep

Re: Debug info in debian/ubuntu gnustep-examples

by Richard Frith-Macdonald-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On 21 Oct 2009, at 19:39, Fred Kiefer wrote:

> Eduardo Osorio Armenta schrieb:
>> Hello GNUstep community
>>
>> I'm new to this list; First of all great environment/framework/
>> tools, KUDOS
>> to all DEVs.
>>
>> I'm becoming a fan/user of WindowMaker/GNUstep in ubuntu 9.04
>>
>> I hope you get me a little help/direction/url trying to get the debug
>> symbols when compiling
>> the examples from gnustep-examples source in ubuntu package
>>
>> after downloading the source of this package i compiled fine with
>> make
>> and run with
>> openapp ApplicationName.app
>>
>> but trying to debug with gdb, it states that no debug info was know  
>> for
>> every program
>> so i research in gnustep wiki for a HowTo cook
>> and found that the command
>>
>> make messages=yes

That prints verbose output while bulding ... it doesn't build for  
debugging.
What you want is
'
make debug=yes

>> produces this info, but this didn't worked for gnustep-examples  
>> programs
>> only for a simple HelloWorld program (using Foundation NSLog, etc)
>>
>
> As far as I know all GNUstep components get compiled with debug
> information enabled.

Yes, but unless you do 'make debug=yes' they are also compiled with  
optimisation ... which makes it difficult to interpret the output of  
gdb reliably as the optimiser will change the exact control flow in  
the program (so the line displayed in gdb can jump about  
unpredictably) and will remove many variables (so gdb can't examine  
them).

So for any code you intend to debug using gdb, you should build with  
'make debug=yes' which turns off optimisation.

> The simplest way to start debuging a GNUstep application is via
>
> debugapp ApplicationName.app
>
> or
> openapp --debug ApplicationName.app
>
> which is what I prefer.
>
> Hope this helps
> Fred
>
>
> _______________________________________________
> Discuss-gnustep mailing list
> Discuss-gnustep@...
> http://lists.gnu.org/mailman/listinfo/discuss-gnustep



_______________________________________________
Discuss-gnustep mailing list
Discuss-gnustep@...
http://lists.gnu.org/mailman/listinfo/discuss-gnustep

Re: Debug info in debian/ubuntu gnustep-examples

by Fred Kiefer :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Richard Frith-Macdonald schrieb:

> On 21 Oct 2009, at 19:39, Fred Kiefer wrote:
>>> make messages=yes
>
> That prints verbose output while bulding ... it doesn't build for
> debugging.
> What you want is
> '
> make debug=yes
>
>>> produces this info, but this didn't worked for gnustep-examples programs
>>> only for a simple HelloWorld program (using Foundation NSLog, etc)
>>>
>>
>> As far as I know all GNUstep components get compiled with debug
>> information enabled.
>
> Yes, but unless you do 'make debug=yes' they are also compiled with
> optimisation ... which makes it difficult to interpret the output of gdb
> reliably as the optimiser will change the exact control flow in the
> program (so the line displayed in gdb can jump about unpredictably) and
> will remove many variables (so gdb can't examine them).

Thank you for that tip. I was always annoyed by seeing the same line
twice in gdb because of the instruction reordering. But then I never
took the time to think about getting rid of that problem, so perhaps I
was not annoyed enough.

Fred


_______________________________________________
Discuss-gnustep mailing list
Discuss-gnustep@...
http://lists.gnu.org/mailman/listinfo/discuss-gnustep

Re: Debug info in debian/ubuntu gnustep-examples

by Matt Rice-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Thu, Oct 22, 2009 at 1:05 AM, Fred Kiefer <fredkiefer@...> wrote:

> Richard Frith-Macdonald schrieb:
>> On 21 Oct 2009, at 19:39, Fred Kiefer wrote:
>>>> make messages=yes
>>
>> That prints verbose output while bulding ... it doesn't build for
>> debugging.
>> What you want is
>> '
>> make debug=yes
>>
>>>> produces this info, but this didn't worked for gnustep-examples programs
>>>> only for a simple HelloWorld program (using Foundation NSLog, etc)
>>>>
>>>
>>> As far as I know all GNUstep components get compiled with debug
>>> information enabled.
>>
>> Yes, but unless you do 'make debug=yes' they are also compiled with
>> optimisation ... which makes it difficult to interpret the output of gdb
>> reliably as the optimiser will change the exact control flow in the
>> program (so the line displayed in gdb can jump about unpredictably) and
>> will remove many variables (so gdb can't examine them).
>
> Thank you for that tip. I was always annoyed by seeing the same line
> twice in gdb because of the instruction reordering. But then I never
> took the time to think about getting rid of that problem, so perhaps I
> was not annoyed enough.

gcc 4.5.0 (current active development branch) should have better
support for debugging optimized programs

http://gcc.gnu.org/wiki/Var_Tracking_Assignments

and the var-tracking-assignments-*-branch have been merged into mainline.


_______________________________________________
Discuss-gnustep mailing list
Discuss-gnustep@...
http://lists.gnu.org/mailman/listinfo/discuss-gnustep

Re: Debug info in debian/ubuntu gnustep-examples

by eduardo osorio armenta-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi

i tried:
eduardo@ubutulaptop904:~/gnustep-examples-1.2.0/gui/Calculator$ make debug=yes messages=yes

and got:


This is gnustep-make 2.0.6. Type 'make print-gnustep-make-help' for help.
Making all for app Calculator...
cd .; \
        /usr/share/GNUstep/Makefiles/mkinstalldirs ./obj
/usr/share/GNUstep/Makefiles/mkinstalldirs Calculator.app/.
gcc main.m -c \
              -MMD -MP -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -D_REENTRANT -fPIC -g -Wall -DDEBUG -fno-omit-frame-pointer -DGSWARN -DGSDIAGNOSE -Wno-import -g -fno-strict-aliasing -fexceptions -fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS -fgnu-runtime -fconstant-string-class=NSConstantString -I. -I/home/eduardo/GNUstep/Library/Headers -I/usr/local/include/GNUstep -I/usr/include/GNUstep \
               -o obj/main.o
gcc CalcBrain.m -c \
              -MMD -MP -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -D_REENTRANT -fPIC -g -Wall -DDEBUG -fno-omit-frame-pointer -DGSWARN -DGSDIAGNOSE -Wno-import -g -fno-strict-aliasing -fexceptions -fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS -fgnu-runtime -fconstant-string-class=NSConstantString -I. -I/home/eduardo/GNUstep/Library/Headers -I/usr/local/include/GNUstep -I/usr/include/GNUstep \
               -o obj/CalcBrain.o
gcc CalcFace.m -c \
              -MMD -MP -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -D_REENTRANT -fPIC -g -Wall -DDEBUG -fno-omit-frame-pointer -DGSWARN -DGSDIAGNOSE -Wno-import -g -fno-strict-aliasing -fexceptions -fobjc-exceptions -D_NATIVE_OBJC_EXCEPTIONS -fgnu-runtime -fconstant-string-class=NSConstantString -I. -I/home/eduardo/GNUstep/Library/Headers -I/usr/local/include/GNUstep -I/usr/include/GNUstep \
               -o obj/CalcFace.o
gcc  -rdynamic     -Wl,-Bsymbolic-functions  -shared-libgcc -fexceptions -fgnu-runtime -o Calculator.app/./Calculator \
        ./obj/main.o ./obj/CalcBrain.o ./obj/CalcFace.o      -L/home/eduardo/GNUstep/Library/Libraries -L/usr/local/lib -L/usr/lib     -lgnustep-gui    -lgnustep-base   -lpthread -lobjc   -lm
/usr/share/GNUstep/Makefiles/mkinstalldirs Calculator.app/Resources
echo "OLD_GNUSTEP_STAMP_ASTRING = _NSApplication---" > ./Calculator.app/stamp.make
(echo "{"; echo '  NOTE = "Automatically generated, do not edit!";'; \
          echo "  NSExecutable = \"Calculator\";"; \
          echo "  NSMainNibFile = \"\";"; \
          echo "  GSMainMarkupFile = \"\";"; \
          if [ "" != "" ]; then \
            echo "  NSIcon = \"\";"; \
          fi; \
          echo "  NSPrincipalClass = \"NSApplication\";"; \
          echo "}") >Calculator.app/Resources/Info-gnustep.plist
if [ -r "CalculatorInfo.plist" ]; then \
           plmerge Calculator.app/Resources/Info-gnustep.plist "CalculatorInfo.plist"; \
          fi
pl2link Calculator.app/Resources/Info-gnustep.plist ./Calculator.app/Resources/Calculator.desktop
for f in Calculator.app.tiff; do \
          if [ -f $f -o -d $f ]; then \
            cp -fr $f ./Calculator.app/Resources/; \
          else \
            echo "Warning: $f not found - ignoring"; \
          fi; \
        done
--------------------------------------------------------------------------------------------
then
eduardo@ubutulaptop904:~/gnustep-examples-1.2.0/gui/Calculator$ debugapp Calculator.app

GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
(no debugging symbols found)
(gdb)


i'll try another examples from this package, hope more luck

Regards

On Thu, Oct 22, 2009 at 12:11 AM, Richard Frith-Macdonald <richard@...> wrote:

On 21 Oct 2009, at 19:39, Fred Kiefer wrote:

Eduardo Osorio Armenta schrieb:
Hello GNUstep community

I'm new to this list; First of all great environment/framework/tools, KUDOS
to all DEVs.

I'm becoming a fan/user of WindowMaker/GNUstep in ubuntu 9.04

I hope you get me a little help/direction/url trying to get the debug
symbols when compiling
the examples from gnustep-examples source in ubuntu package

after downloading the source of this package i compiled fine with
make
and run with
openapp ApplicationName.app

but trying to debug with gdb, it states that no debug info was know for
every program
so i research in gnustep wiki for a HowTo cook
and found that the command

make messages=yes

That prints verbose output while bulding ... it doesn't build for debugging.
What you want is
'
make debug=yes


produces this info, but this didn't worked for gnustep-examples programs
only for a simple HelloWorld program (using Foundation NSLog, etc)


As far as I know all GNUstep components get compiled with debug
information enabled.

Yes, but unless you do 'make debug=yes' they are also compiled with optimisation ... which makes it difficult to interpret the output of gdb reliably as the optimiser will change the exact control flow in the program (so the line displayed in gdb can jump about unpredictably) and will remove many variables (so gdb can't examine them).

So for any code you intend to debug using gdb, you should build with 'make debug=yes' which turns off optimisation.

The simplest way to start debuging a GNUstep application is via

debugapp ApplicationName.app

or
openapp --debug ApplicationName.app

which is what I prefer.

Hope this helps
Fred


_______________________________________________
Discuss-gnustep mailing list
Discuss-gnustep@...
http://lists.gnu.org/mailman/listinfo/discuss-gnustep



_______________________________________________
Discuss-gnustep mailing list
Discuss-gnustep@...
http://lists.gnu.org/mailman/listinfo/discuss-gnustep