December 1st, 2008

Fedora 10 is simply awesome! I upgrated my MacBook Pro from Fedora 7 to Fedora 10. After installing a new Fedora I usually spend a few hours getting things to work correctly. This time the only thing I had to restore was my sudoers file. Here are thing things that just worked for me:
- The entire installation was at the native resolution 1440×900
- When I created my user account it asked my if I want to use the already existing home directory from my /home partition
- Track pad, one finger tap click, two finger middle click, three finger right click, and scroll bar on the right.
- Totem figured out the codecs I needed to finish watching The Bank Job, which I had started before the installation
- Full screen worked properly in mplayer, did not need
-vo sdl
- Desktop Effects has never worked before, works now
- Wifi worked out of the box, and network manager took 30 seconds instead of 3 minutes for very fist connect
Thank you everyone for all the hard work. This was truly a quality release.
Posted in fedora | 3 Comments »
November 19th, 2008
So! I have been working on GDB for a while now as part of the Archer project. Specifically C++ expression evaluation. More specifically lookup issues.
GDB has a lot of issues around namespace lookup a good chunk of which are hopefull fixed now in my branch.
Here are some issues that have been fixed:
namespace imports:
namespace A{
int x = 9;
}
int main(){
using namespace A;
x;
}
(gdb) break main
...
(gdb) run
...
(gdb) print x
$1 = 9
namespace aliases:
namespace A{
int x = 9;
}
namespace B=A;
int main(){
B::x;
}
(gdb) break main
...
(gdb) run
...
(gdb) print B::x
$1 = 9
Imports if individual elements from namespaces:
namespace A{
int x = 9;
int y = 99;
}
using A::x;
int main(){
x;
}
(gdb) break main
...
(gdb) run
...
(gdb) print x
$1 = 9
(gdb) print y
No symbol "y" in current context.
If you want to try the above you can checkout the archer gdb branch:
git clone git://sourceware.org/git/archer.git
Then checkout my branch:
cd archer;
git branch archer-swagiaal-using-directive origin/archer-swagiaal-using-directive;
git checkout archer-swagiaal-using-directive
Next post I will talk about issues that I am still working on.
Posted in fedora | 1 Comment »
August 12th, 2008
So the Archer task list has been posted and I ended up with c++ expression parsing.
The goal of this task is to enable the user to copy and paste an valid c++ code during the execution of their program hand have it correctly tokenized, lexed, looked-up and ultimately evaluated.
My first task was to come up with estimates. Ie how much of this problem can we solve can we arrive at a perfect solution, or do we settle for doing good enough job ? How much work is needed to arrive at that solution ? Can it be done by modifying current gdb code ? Do we need to write something from scratch?.. etc
In order to gain more insight into the problem, i decide to pic a couple of pet bugs.
In the next post I will talk about my adventures inside gdb.
Posted in fedora | 2 Comments »
July 28th, 2008
As some of you know may know. Red Hat will no longer be working on the Frysk project. The debugger team will instead move to work on gdb.
About a month ago we went through a period of examination of the status and goals of Frysk. Long discussions on the list and in meetings. During this rexamination the question of “why not improve on gdb ?” came up, and while a couple of years ago the consensus was that the changes we had in mind were too radical to make to gdb. It is now felt that that this is possible as some of these changes are indeed already underway, and the remaining ones should be incremental changes.
I have never worked on gdb so I dont have much opinion on how well things will go in that front but I hope that we can improve the user experience and bring to the community the same cool functionality that we had in mind for Frysk.
I would also like to say that it was a pleasure working on Frysk. The code base of Frysk was well designed, and handled extension well. Fixing bugs was always straight forward and did not involve a lot of “fitting square pegs into round holes”. Indeed I think one of our vices was that we spent a lot of time cleaning and refactoring the code base to ensure its extensibility and reusability.
Our effort on gdb will be going under the code name Archer. Archer is a branch of gdb with the general goal of creating “the best c++ debugger in the world”. But more specifically here is a list of our goals: Project Archer Goals
So!.. On to new frontiers.
Sami
Posted in fedora, frysk | 1 Comment »
July 18th, 2008

I have just returned from what was my first GUADEC.
It was a great conference, great city, great people, great parties…. basically a great experience all around. I gave two presentations one on Frysk and one on Systemtap. Both went well.
The talks were pretty cool.. I wanted to go to everyone of them. They were recorded so hopefully we’ll see some links pretty soon.
Istanbul is a beautiful city. I hope to go back sometime. We were staying in Sultanahmet a great area to stay in; you will find everything from expensive hotels to cheap, clean student hostels. There is no lack of restaurants, coffee shops, historical sites, or beautiful mosques to visit… oh and rooftop patios with surreal views.
GUADEC parties were good, but the boat party was by far the best. Something about being in boat in the middle of the Bosporus brings out the party animal inside of you.
The local volunteers at GUADEC and the Turkish people in general are very welcoming. You cannot look at a map twice without someone offering to help. It was also nice to see people from difference cultures having with
Overall I thought it was a great conference. Things went smoothly, and it was very productive. Thanks to the organizers who made it seem easy.
The image above is a view of the Bosporus from the terrace of the hotel.
Posted in fedora, frysk | 2 Comments »
June 11th, 2008
The monthly frysk 0.4 release is now complete:
You can download the tarball here: ftp://sourceware.org/pub/frysk/frysk-0.4.tar.bz2
Or you can just ‘yum install frysk’We would love to git you feed back so please files bugs: http://sourceware.org/bugzilla/enter_bug.cgi?product=frysk
And join us on irc://irc.gimp.org/frysk
Special thanks to our contributors or as I like to call them
(git-log --after=frysk/0.3 --pretty=format:"%an %ae" | sort -u):
Andrew Cagney cagney@redhat.com
Petr Machata pmachata@redhat.com
Phil Muldoon pmuldoon@redhat.com
Rick Moseley rmoseley@redhat.com
Sami Wagiaalla swagiaal@redhat.com
Teresa Thomas tthomas@redhat.com
So here is whats new in this release:
Release 0.4, 2008-06-09
-> Added support for watching values that are bigger than the
maximum number of bytes a single watchpoint can watch. For example,
types double or long long on IA32; an array of size 32 on X86_64.
In these cases, frysk allocates multiple debug registers to watch
over the same expression.
-> Smaller memory foot-print when generating stack backtraces.
Frysk has been changed to more aggressively release memory
allocated by the unwinder.
-> New capability to pass args via the "load" command and when
fhpd is first started i.e., "$[/home/xxx] fhpd ls -la". The
/bin/ls command is loaded and the parameter "-la" will be passed
when a "start" or "run" command is issued with no overriding
parameters. Also, on subsequent runs, "-la" is always used unless
other parameters are entered with the "run" or "start" command.
(This was bz #6515/6536).
-> Support was added for fully-qualified symbol notation using the
standard HPD "#" syntax (e.g. "#libc.so.6#malloc"). Ftrace now
uses this notation to communicate with the user in both directions,
FHPD recognizes the syntax although can't handle it yet.
-> Fix Hover-over variable does not show variable value(bz #6484).
-> Created a new command line utility: fdebugdump. fdebugdump dumps
a hierarchical view of the debug info tags in an executable. Future
improvements could include dumping the debug info live as libraries
are mapped in.
-> Bugs fixed http://sourceware.org/bugzilla/:
5254: stepping engine, fhpd, and breakpoints are not in sync
5557: testcase: watch 1 byte address
5558: testcase watch address and range
5559: testcase failure testcase (watch an address that has been
umapped)
5560: Add frysk.proc.TaskObserver.Watch interface
5561: Add frysk.proc.ProcObserver.Watch interface
5562: Write Debug Status Register Builder
5563: Write Debug Register Set/Read Proxy.
5565: Task and Proc State need new watchpoint state transitions.
5566: Write watchpoint manager
5567: Add ISA specific functions to set debug registers via debug
register proxy
6390: testFerrorTracesPID(frysk.bindir.TestFerror) fails.
6512: Add function to provide the max length a debug register can
watch
6515: fhpd command line args incorrect
6531: Low level hardware watchpoint support should check, and reject,
incorrectly aligned addresses
6532: Do not check watchpoints in Running|Stepping.handleTrapped if
software /ISA does not support watchpoints
6533: Watchpoint addition failure should not raise an exception, but
should instead call .addFailed() callback
6535: fexe not working for scripts
6551: Watch support for variables bigger than max length of a single
watch register
6554: Separate watch observer(s) installer from hpd
6555: Notify if available h/w watchpoints not enough to watch
complete value.
6558: Handle watchpoint set error if expression has no legal address
6559: Multiple watchpoint set messages are displayed when multiple
watch observers used
6576: Need to load process/params with HpdTestBed
6599: don't align the load-address
6600: dwfl_module_getsrc doesn't allow for bias
6603: Task does not resume after hitting multiple b.pts
simultaneously.
http://sourceware.org/frysk
Posted in fedora, frysk | 1 Comment »
May 30th, 2008
I just committed a new utility to frysk, I dont know if anybody would be interested in this but here goes.
fdebugdump runs a program and prints out the debug information for the modules that are mapped in at that point. I used to use readelf -dbug-dump but that doesnt have a heirachical view, so I wrote fdebugdump.
So for example for this program:
void
print(char *what) {
while (*what != '\0') {
write(1, what, 1);
what++;
}
}
int
main(int argc, char** argv) {
// XXX: This forgets to check ARGC.
print(argv[1]);
print("\n");
return 0;
}
$fdebugdump funit-hello
module: funit-hello
DwTag_COMPILE_UNIT funit-hello.c
DwTag_BASE_TYPE unsigned char
DwTag_BASE_TYPE short unsigned int
DwTag_BASE_TYPE unsigned int
DwTag_BASE_TYPE long unsigned int
DwTag_BASE_TYPE signed char
DwTag_BASE_TYPE short int
DwTag_BASE_TYPE int
DwTag_BASE_TYPE long int
DwTag_BASE_TYPE
DwTag_POINTER_TYPE
DwTag_BASE_TYPE char
DwTag_SUBPROGRAM print
DwTag_FORMAL_PARAMETER what
DwTag_SUBPROGRAM main
DwTag_FORMAL_PARAMETER argc
DwTag_FORMAL_PARAMETER argv
DwTag_POINTER_TYPE
module: /lib64/ld-2.8.so
Or if you only want to see functions and parameters for example:
$ fdebugdump funit-hello | egrep "SUB|PARAM"
DwTag_SUBPROGRAM print
DwTag_FORMAL_PARAMETER what
DwTag_SUBPROGRAM main
DwTag_FORMAL_PARAMETER argc
DwTag_FORMAL_PARAMETER argv
Posted in fedora, frysk | No Comments »
April 8th, 2008
I am happy to announce that frysk version 0.2.1 has been released.
Downloaded it here, or just ‘yum install frysk’
In this release… lots of good stuff:
- command line utilities:
fcatch - catch and print the stack of a crashing process
fcore - extract a core file from a running process
fdebuginfo - list debug-info requirements of a process
fdebugrpm - install debug-info requirements of a process
ferror - catch and back-trace error calls
fstack - print each thread’s stack
ftrace - trace a processes system and library calls
and a few more.
- Prototype command line debugger: fhpd
- Prototype visual debugging and monitoring tool (frysk)
Known limitations: work-flow limited to live processes (examining core files, or creating processes is possible but very non-intuitive).
About the version number:
We have not been making regular releases of frysk, mainly because a lot of the work was going into the infrastructure of frysk so there weren’t many user visible features. Now that we will be making regular releases we wanted to bump the version number to communicate the huge progress that we have made from 0.0.1 to current version. There were several suggestions:
- Go to 0.9 then start doing 0.9.1, 0.9.2, etc for minor releases or,
- go to 0.8 then 0.8.1, 0.8.2, etc,
- but finally we decided to do 0.2, 0.3, 0.4….0.11, 0.13 etc
Enjoy
Posted in frysk | No Comments »
March 30th, 2008


Hello Planet Fedora.
Thanks Seth for adding my blog.
A while back I blogged about how I use notify-send from libnotify to tell me when my builds are done.
I recieved a patch in a comment from uzytkownik to display the name of the command which just finished. So I incorporated the patch and created a project on google code called saydone.
I also filed the first bug:
Issue 1:
“saydone is a silly name”
Posted in Uncategorized | 3 Comments »
November 30th, 2007
When I first learned about pointers back in second year, there were a bit of confusion among my class mates. I wasn’t confused but I wrote but i wrote pointers like this:
char* a = “bla”
The above made a lot of sense. I read it as “a character pointer named a”. I never understood why people insist on writing
char *a= “bla”
How does one read the above, and why doest make sense to so many programmers out there ? the * is part of the type description not the name of the variable it is not a char named *a so why is it written like that.
Maybe someone will tell me some day, but until then I will continue to correct pointer declarations quietly. One pointer at a time.
Posted in Uncategorized | 4 Comments »