gdb, Xcode and Chandler - a story

January 30th, 2006 No Comments »
So last week I was trying to find a workflow by which it would be possible to o source-level debugging of Chandler, using Apple’s Xcode IDE.

Since Xcode uses gdb, I first looked at that environment. It didn’t take too long to get to the point where I was able to do a stack trace, list source code, etc. I thought this meant it wouldn’t be too bad to get this working in Xcode too.

However, now it seems like it will take more work than I had thought. Chandler is launched using the RunChandler script, which in turn uses the RunPython script. These both set up environment variables, which seem to be very important for Chandler to function correctly.

I tried re-implementing the scripts in the debugger by setting the values of environment variables appropriately.

2005-01-30-xcode-env.jpg
Setting all the environment variables correctly in order for Chandler to run is tricky.

Results vary from output like

Debugger stopped.
Program exited with status value:1.’import site’ failed; use -v for traceback
Traceback (most recent call last):
File “/Users/rae/work/osaf/chandler/chandler/Chandler.py”, line 10, in ?
import os, PyLucene
ImportError: No module named os
[3095 refs]
to having Xcode decide to use the “Java Debugger” to debug the RunChandler script, to Xcode itself crashing when I change the path for the executable over and over. And then there is the ever-helpful “Program failed to load.”

I’ll keep trying, but it certainly isn’t as easy as I had hoped it would be.

gdb and variables

January 27th, 2006 No Comments »
I am having difficulty getting gdb to work with any sort of variable. I want to be able to do things like:
(inside gdb)
cd $dir
dir $dir
However, there seems to be no way to do this. I might have to build a temporary gdb file on-the-fly, with commands in it with hard-coded paths built from envrionment variables etc.

Yuck!

MacsBug emulation in gdb

January 27th, 2006 No Comments »
macsbug Using gdb but want that good old MacsBug experience? You just put this in ~/.gdbinit:
source /usr/libexec/gdb/plugins/MacsBug/gdbinit-MacsBug
This gives you many of the old school MacsBug commands like “sc”. If you want to take it further, load up gdb with MacsBug loaded and then type:
MB
Ta-daa! You actually have a UI just like the old MacsBug, only this is using curses in a terminal. Heh.

Using ddd

January 25th, 2006 No Comments »
I’m working on a wiki page about using ddd. My first road block is the app requiring pythonw instead of just python. Other than that it’s going pretty smoothly. The steps I am hoping to achieve are:
  1. Run Chandler under ddd
  2. Stop at a breakpoint in Python code
  3. Stop at a breakpoint in C/C++ code
  4. Do a stack trace showing both Python and C++ code

I’m not sure that the last one is do-able, but it is certainly desirable!

I’m in San Francisco this week

January 19th, 2006 No Comments »
I’m staying at the Ramada Plaza hotel near 8th Street and Market. The nice thing is that it’s two BART stops away from 2nd & Market, which is very close to OSAF.

This week OSAF is having a “sprint”. This is when two developers get together to implement something using whatever project they are working on. In this case, I’m teamed up with Jeffrey (who goes gaming with me on the occasional Wednesday night when I’m in town) and we’re doing a feedback parcel. (Chandler’s “parcels” are similar to plugins, except they are usually just Python scripts).

Tonight was special because we all went out for dinner to a place called Osha Thai, at 149 2nd street. They served Thai food. Mmmmmm… I got to sit next to John, David, Andi, Alec and Heikki. Everyone else was too far away to talk to (it was pretty loud there).

Now I think I’ll watch a Zatoichi movie before heading to bed. Good night.

BoingBoing post

January 13th, 2006 No Comments »
boing boing So this morning (or late last night, actually), I submitted a story about Chandler to BoingBoing, a fairly popular site co-run by Cory, a friend of mine. I did this because I had asked in meetings a few weeks ago if it would be all right (specifically asking about BoingBoing in particular) and was told that as long as I emphasized its “experimental” status, it would be okay.

chandler Unfortunately, some not-quite-right facts made their way into the story. Andy Hertfield was mentioned, even though he hasn’t been involved for a couple of years. Plus, there was no mention of Chandler’s “experimental” nature. Not good.

Then the story got picked up by Ars Technica. Although they actually downloaded and used the app, they, too, went on at some length about Andy Hertzfield as if Chandler was something he was currently deeply involved with.

Alas.

So now I am feeling bad about posting it to BoingBoing in the first place. However, hopefully this will spur some more community involvement, so that some good can come out of this.

Sprint next week

January 11th, 2006 No Comments »
I will be at OSAF next week for the “sprint”. A sprint is where you get a bunch of people who want to learn to use something together with a bunch of other people who know how to use the same thing really well. I think.

So next week, OSAF is hosting a sprint that is going to be part of PyCon 2006. (I think) people can come to OSAF’s offices and try to write “parcels” (Chandler-ese for “plugin written in Python”) for Chandler. I am hoping to write one of my own. It would tie in nicely to the existing calendar - it would track working hours, which would help me do my billing more easily.

Hah!

I want to attend Bear’s key signing party, for which I need to generate a key and print out its info to bring along.

Then on Saturday there is an office post-holidays party, which should be fun. I will bring my camera, even though it pales in comparison to sprout’s.

Current PowerBook woes running Chandler

January 11th, 2006 3 Comments »
I keep getting this..
% debug/RunChandler --stderr --create
Using ./debug/Library/Frameworks/Python.framework/Versions/2.4/Resources/Python.app/Contents/MacOS/Python
Traceback (most recent call last):
  File "./Chandler.py", line 12, in ?
    import application.Utility as Utility
  File "/Users/rae/work/osaf/chandler/chandler/application/Utility.py", line 15, in ?
    from repository.persistence.DBRepository import DBRepository
  File "/Users/rae/work/osaf/chandler/chandler/repository/persistence/DBRepository.py", line 15, in ?
    from chandlerdb.persistence.c import DBEnv, \
ImportError: cannot import name DBEnv
[138813 refs]
Any help appreciated!

Welcome to Chomping at Chandler

January 11th, 2006 No Comments »
This is a blog where I can spew hundreds of lines of information/logs/what have you about what I am doing with Chandler, the Free Software that helps you organize your life (and that of your family!)