[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

debug ruby extension via gdb

Zhang Bo

3/6/2009 10:32:00 AM

Hi, I have a question during debugging ruby c++ extension. For example,
I created a c++ class who is wrapped through swig. Now I'd like to
invoke the class via ruby. Meanwhile I'd like to debug it via gdb. How
to step through it?

anyone knows how to solve it? In other words, are there any good
advice about how to debug c++ extension?
thank you in advance
--
Posted via http://www.ruby-....

3 Answers

Alex Fenton

3/6/2009 11:51:00 AM

0

Zhang Bo wrote:
> Hi, I have a question during debugging ruby c++ extension. For example,
> I created a c++ class who is wrapped through swig. Now I'd like to
> invoke the class via ruby. Meanwhile I'd like to debug it via gdb. How
> to step through it?


Assuming (1) you have successfully compiled your SWIG-based extension to
a library lib/foo.so, and (2) you have a test ruby script that uses your
C++-based class called test_foo.rb, run gdb from a command prompt/terminal:

$> gdb ruby

....

(gdb) run -Ilib test_foo.rb

That will execute ruby with the arguments "-Ilib test_foo.rb". You can
then set breakpoints, step through C/C++ statements etc as normal in
gdb. You can set breakpoints on the C++ method wrappers in your
extension this way.

a

Zhang Bo

3/6/2009 12:44:00 PM

0

thank you very much! I followed your advice. It works!

Another question is how to set breakpoints?

$gdb ruby
$run -Ilib my_test.rb
......
......
what about next? how to set breakpoints for my own program? how to step
through?
Because I am newbie to ruby. thanks for the help



Alex Fenton wrote:
> Zhang Bo wrote:
>> Hi, I have a question during debugging ruby c++ extension. For example,
>> I created a c++ class who is wrapped through swig. Now I'd like to
>> invoke the class via ruby. Meanwhile I'd like to debug it via gdb. How
>> to step through it?
>
>
> Assuming (1) you have successfully compiled your SWIG-based extension to
> a library lib/foo.so, and (2) you have a test ruby script that uses your
> C++-based class called test_foo.rb, run gdb from a command
> prompt/terminal:
>
> $> gdb ruby
>
> ...
>
> (gdb) run -Ilib test_foo.rb
>
> That will execute ruby with the arguments "-Ilib test_foo.rb". You can
> then set breakpoints, step through C/C++ statements etc as normal in
> gdb. You can set breakpoints on the C++ method wrappers in your
> extension this way.
>
> a

--
Posted via http://www.ruby-....

Tim Hunter

3/6/2009 1:51:00 PM

0

Zhang Bo wrote:
> thank you very much! I followed your advice. It works!
>
> Another question is how to set breakpoints?
>
> $gdb ruby
> $run -Ilib my_test.rb
> ......
> ......
> what about next? how to set breakpoints for my own program? how to step
> through?

At a gdb prompt, type "help".

--
RMagick: http://rmagick.ruby...