• Like
Debugging RubyMotion
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Debugging RubyMotion

  • 471 views
Published

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.

Published 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
471
On SlideShare
0
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