Blog

Easy value analysis example: putnum()
Pascal Cuoq on 12 August 2011

If some of the posts in this blog ever get re-organized into a course-style document, this one will be near the beginning, because it's simple and self-contained. The program This example was offered on our bug-tracking system: int putchar(int); void print(const char *ptr) { while (*ptr) putchar(*ptr++); } void putnum(unsigned...

Read More

Csmith testing reveals that I'm no good at probabilities (and lazy)
Pascal Cuoq on 10 August 2011

Csmith testing A typical Frama-C Csmith testing script repeats four actions in an infinite loop: getting a random program from Csmith; compiling and executing it; analyzing it with Frama-C; using the results from step 3, possibly together with those of step 2, to determine whether the program reveals something that...

Read More

One more rant for the holidays: style self-consciousness
Pascal Cuoq on 9 August 2011

One unexpected consequence of writing semi-regularly in a blog, in addition to the other bits of writing that I have to do, is that I am starting to hate my own style. It feels like English sentences always come out my fingers with the same rhythm to them. Precisely dull....

Read More

Holiday stuff
Pascal Cuoq on 8 August 2011

I do not expect that many people are diligently working at this time of year, and this is my excuse for posting this series of productivity-wasting links. Some of them are even on-topic. For those who missed it, GNU/Linux Magazine/France has a summer special [removed dead link] on the C...

Read More

Donut gibberish
Pascal Cuoq on 7 August 2011

Hey, I left out one alarm last time: donut.c:15 ... out of bounds read. assert \valid(". -~:;=!*#$@"+tmp_7); This corresponds to ". -~:;=!*#$@"[N>0?N:0] in the obfuscated code. I wanted to have a blog post about this construct in particular because I was curious whether it would break the content management system's...

Read More