I now have lldb compiling and attempting to execute a program. There seems to be an assumption in the code that sizeof(int) is 8 on a 64 bit platform. This is not the case with Linux/gcc 4.6, leading to some rather nasty bugs (the return value of ptrace() was being assigned to an int, truncating data from peeks, for instance!). I've fixed the ptrace() issue but another one is happening somewhere around breakpoints. I added some logging which displays the problem -<br>
<br>Process 4017 launched: '/home/jo/reader/calliope' (x86_64)<br>(lldb) Looking for address 406780, list size is 1<br>Entry 0 is 406780 sizeof 8<br>Looking for address 270f9300, list size is 2<br>Entry 0 is 406780 sizeof 8<br>
Entry 1 is 7ffb270f9300 sizeof 8<br>lldb: /home/jo/lldb/llvm/tools/lldb/source/Plugins/Process/Linux/LinuxThread.cpp:249: void LinuxThread::BreakNotify(const ProcessMessage&): Assertion `bp_site' failed.<br><br>Clearly the second breakpoint address is being truncated down to 32 bits somewhere in the code. Before I go spelunking in the Linux subdirectories, is sizeof(int)==8 something that the development team is assuming based on MacOS X? If so, after all, it would be more worth my time to make gcc comply with the OS X definition.<br>
<br><br><br>