Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 25 Oct 2012 22:32:54 -0400
From: Rich Felker <>
Subject: Re: Difference between -O2 and -g

On Fri, Oct 26, 2012 at 10:04:46AM +0800, Brian Wang wrote:
> > One very simple way to get a picture of what's going on in a program
> > is to run it under strace. Try saving strace logs for both the working
> > version and the broken version and comparing them either manually or
> > with the diff utility (although the latter may be difficult unless you
> > filter out the addresses and other contnets that will naturally
> > differ, so it might be easier to visually inspect). If you don't
> > already have an strace built for your target, I think Aboriginal Linux
> > has static binaries you can use.
> I have previously built my static strace.
> I could not decipher what went wrong.  Please find the strace logs for
> the three binaries in question.
> The source code is basically the same, except for the musl ones,
> printf calls are sprinkled here and there
> as my desperate attempt.

The good and bad traces diverge at this line, which only happens in
the good one:

writev(2, [{"CreateColormap : good end\n", 26}, {NULL, 0}], 2) = 26

So search the source for that string and see what condition is causing
that code to be reached or not reached.


Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.