panaak / gdb.rb Goto Github PK
View Code? Open in Web Editor NEWThis project forked from tmm1/gdb.rb
gdb hooks for MRI/REE (and some for YARV)
This project forked from tmm1/gdb.rb
gdb hooks for MRI/REE (and some for YARV)
gdb7 hooks for MRI (c) 2009 Aman Gupta (tmm1) === Requirements gdb.rb currently requires x86_64 linux, and MRI/REE 1.8.x or 1.9.2. === Usage $ ps aux | grep deploy.rb 13074 0.0 0.7 90164 31720 ? R Sep23 2:21 /usr/bin/ruby /usr/bin/god -c deploy.rb $ sudo gdb.rb 13074 GNU gdb (GDB) 7.0 Reading symbols from /usr/bin/ruby...done. Attaching to program: /usr/bin/ruby, process 13074 0x00007fa8b9cb3c93 in select () from /lib/libc.so.6 (gdb) ruby eval 1+2 2 (gdb) ruby eval Thread.list.count 17 (gdb) ruby threads list 0x1589000 main thread THREAD_STOPPED WAIT_JOIN(0x19ef400) 4417 bytes 0x19ef400 thread THREAD_STOPPED WAIT_TIME(57.10) 6267 bytes 0x19e3400 thread THREAD_STOPPED WAIT_FD(5) 10405 bytes 0x19e0000 thread THREAD_STOPPED WAIT_NONE 14237 bytes 0x19e0400 thread THREAD_STOPPED WAIT_NONE 14237 bytes 0x19e0800 thread THREAD_STOPPED WAIT_NONE 14237 bytes 0x19e0c00 thread THREAD_STOPPED WAIT_NONE 14237 bytes 0x19de000 thread THREAD_STOPPED WAIT_NONE 14237 bytes 0x19de400 thread THREAD_STOPPED WAIT_NONE 14237 bytes 0x19de800 thread THREAD_STOPPED WAIT_NONE 14237 bytes 0x19dec00 thread THREAD_STOPPED WAIT_NONE 14237 bytes 0x19dc000 thread THREAD_STOPPED WAIT_NONE 14237 bytes 0x19dc400 thread THREAD_STOPPED WAIT_NONE 14237 bytes 0x19dc800 thread THREAD_STOPPED WAIT_NONE 14237 bytes 0x19dcc00 thread THREAD_STOPPED WAIT_NONE 14237 bytes 0x2266800 thread THREAD_STOPPED WAIT_NONE 14237 bytes 0x1d63000 curr thread THREAD_RUNNABLE WAIT_NONE (gdb) ruby threads 0x1589000 main thread THREAD_STOPPED WAIT_JOIN(0x19ef400) 4417 bytes node_call join in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god.rb:626 node_call start in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god.rb:633 node_call at_exit in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god.rb:666 node_fcall (unknown) in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/cli/run.rb:87 0x19ef400 thread THREAD_STOPPED WAIT_TIME(45.25) 6267 bytes node_fcall sleep in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god.rb:622 node_fcall start in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god.rb:621 node_fcall loop in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god.rb:621 node_call start in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god.rb:620 node_call initialize in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god.rb:620 node_call new in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god.rb:620 node_call start in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god.rb:633 node_call at_exit in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god.rb:666 node_fcall (unknown) in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/cli/run.rb:87 0x19e3400 thread THREAD_STOPPED WAIT_FD(5) 10405 bytes node_call accept in /usr/lib/ruby/1.8/drb/unix.rb:98 node_call accept in /usr/lib/ruby/1.8/drb/drb.rb:1581 node_vcall main_loop in /usr/lib/ruby/1.8/drb/drb.rb:1430 node_call run in /usr/lib/ruby/1.8/drb/drb.rb:1427 node_call start in /usr/lib/ruby/1.8/drb/drb.rb:1427 node_vcall run in /usr/lib/ruby/1.8/drb/drb.rb:1347 node_call initialize in /usr/lib/ruby/1.8/drb/drb.rb:1627 (gdb) ruby threads trace -- Tracing thread context switches. 0x19ef400 thread THREAD_RUNNABLE WAIT_NONE 6267 bytes 0x1d63000 thread THREAD_RUNNABLE WAIT_NONE 8623 bytes 0x19e3400 thread THREAD_RUNNABLE WAIT_NONE 10405 bytes 0x3001c00 thread THREAD_RUNNABLE WAIT_NONE 9507 bytes 0x19e3400 thread THREAD_RUNNABLE WAIT_NONE 9507 bytes 0x3001c00 thread THREAD_RUNNABLE WAIT_NONE 15059 bytes 0x1d63000 thread THREAD_RUNNABLE WAIT_NONE 8623 bytes 0x3001c00 thread THREAD_RUNNABLE WAIT_NONE 15059 bytes (gdb) ruby trace 25 -- Tracing the next 25 ruby method calls. handle_events in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/event_handler.rb:66 watching_pid? in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/event_handler.rb:58 [] in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/event_handler.rb:59 default in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/event_handler.rb:59 handle_events in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/event_handler.rb:66 watching_pid? in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/event_handler.rb:58 [] in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/event_handler.rb:59 default in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/event_handler.rb:59 handle_events in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/event_handler.rb:66 watching_pid? in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/event_handler.rb:58 [] in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/event_handler.rb:59 default in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/event_handler.rb:59 handle_events in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/event_handler.rb:66 handle_events in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/event_handler.rb:66 handle_events in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/event_handler.rb:66 handle_events in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/event_handler.rb:66 handle_events in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/event_handler.rb:66 handle_events in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/event_handler.rb:66 handle_events in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/event_handler.rb:66 handle_events in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/event_handler.rb:66 handle_events in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/event_handler.rb:66 watching_pid? in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/event_handler.rb:58 [] in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/event_handler.rb:59 default in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/event_handler.rb:59 handle_events in /usr/lib/ruby/gems/1.8/gems/god-0.7.13/bin/../lib/god/event_handler.rb:66 (gdb) ruby objects HEAPS 8 SLOTS 1686252 LIVE 893327 (52.98%) FREE 792925 (47.02%) bignum 2 (0.00%) file 51 (0.01%) float 77 (0.01%) module 781 (0.09%) varmap 1354 (0.15%) scope 1641 (0.18%) match 1676 (0.19%) iclass 1744 (0.20%) regexp 2255 (0.25%) data 3539 (0.40%) class 3680 (0.41%) hash 6196 (0.69%) object 8785 (0.98%) array 13850 (1.55%) string 105350 (11.79%) node 742346 (83.10%) (gdb) ruby objects classes 1 YAML::Syck::Resolver 1 YAML::Syck::Resolver 1 SystemStackError 1 Object 1 Object 1 NoMemoryError 1 fatal 1 Object 1 Gem::SourceIndex 1 Gem::GemPathSearcher 1 Gem::ConfigFile 1 God::Logger 1 God::SimpleLogger 1 God::CLI::Run 1 DRb::DRbServer::InvokeMethod 1 DRb::DRbServer 1 DRb::DRbIdConv 1 God::Registry 1 OptionParser::Switch::OptionalArgument 1 OptionParser 1 God::Socket 1 God::Contacts::Email 2 Date::Infinity 2 DRb::DRbMessage 2 DRb::DRbBadScheme 2 DRb::DRbUNIXSocket 3 OptionParser::List 6 IOError 6 Errno::ESRCH 6 OptionParser::Switch::RequiredArgument 6 Net::InternetMessageIO 7 God::System::SlashProcPoller 7 God::System::Process 7 God::DriverOperation 7 Net::SMTP 8 StandardError 10 OptionParser::Switch::NoArgument 13 God::Conditions::Flapping 13 God::Conditions::ProcessExits 13 God::Behaviors::CleanPidFile 13 God::Process 13 God::Watch 13 God::Driver 13 God::DriverEventQueue 19 God::DriverEvent 38 Process::Status 39 God::Conditions::ProcessRunning 50 Range 63 Gem::Specification 65 God::Metric 81 Gem::Dependency 174 Gem::Version::Part 209 Gem::Requirement 219 Gem::Version (gdb) ruby objects strings 70 u'bin' 73 u' INFO' 74 u'--main' 74 u'I' 75 u'..' 78 u'ruby' 80 u'::' 92 u'1.3.2' 100 u'README.rdoc' 102 u' ' 108 u'Rakefile' 110 u'README' 114 u'\r\n' 127 u'>=' 140 u'lib' 158 u'0' 294 u'\n' 619 u'' 30503 unique strings 3187435 bytes (gdb) ruby objects nodes 8156 NODE_EVSTR 8966 NODE_COLON2 10020 NODE_DVAR 11493 NODE_AND 13157 NODE_FCALL 14493 NODE_VCALL 15148 NODE_ARGS 15180 NODE_CONST 15445 NODE_SCOPE 16582 NODE_IF 21594 NODE_LASGN 22084 NODE_METHOD 26633 NODE_STR 37819 NODE_LIT 64325 NODE_LVAR 64470 NODE_NEWLINE 69436 NODE_BLOCK 85825 NODE_CALL 126739 NODE_ARRAY === TODO `ruby where` for the current stack trace `ruby print` to inspect ruby variables `ruby breakpoint` to breakpoint on ruby methods `ruby irb` for a simple interactive shell === Credits Tom Tromey for his work on gdb python support (gdb-eval.patch, gdb-breakpoints.patch) and help tracking down some memory leaks (gdb-leak.patch) Joe Damato for writing parts of ruby-gdb.py and various gdb hacks to make gdb.rb possible. === License Available under the Ruby License.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.