Debugging RubyMotion
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Debugging RubyMotion

  • 960 views
Uploaded on

Slides from the presentation on "Debugging RubyMotion" given at the RubyMotion #inspect 2013 conference.

Slides from the presentation on "Debugging RubyMotion" given at the RubyMotion #inspect 2013 conference.

More in: Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
960
On Slideshare
960
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
1
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. How to DebugRubyMotion AppsThe Life and Times of an Object
  • 2. My App Crashed!Now what???
  • 3. Weapon of Choicegdb• rake debug=1• Watch it crash• Play!
  • 4. What is an Object?• Just a struct!• First value is the isa pointer to the Class• In gdb, try “x”• Refer to the Obj-C Runtime Reference
  • 5. Demo
  • 6. Advanced WeaponryMallocStackLoggingNoCompact• man malloc• Set environment variables to log the stackduring allocations• Run in GDB, use malloc_history to viewstacks
  • 7. Demo
  • 8. 4 Rs of Bug Reporting• Reproduce• Report• Reduce• Regress
  • 9. Reproduce It!• Can you make the bug occur every time?most of the time? some of the time?• Check all config files, Rakefile• Environment and EnvironmentVariables• Ask a friend
  • 10. Report It!• motion support• All steps to reproduce• bonus points for small sample apps• RubyMotionVersion (Have you updatedrecently?)• Crash log (hint: look in Console.app)
  • 11. Reduce It!• Eliminate libraries• Simple scripts are best• Shrink code as much as possible!
  • 12. Regress It!• Did it used to work?• motion update [--force-version=X]
  • 13. Demo
  • 14. Questions?@manhattanmetricJoshua Ballancohttps://github.com/jballanchttp://www.burnsidedigital.com