I have an application that I'm testing/debugging I would like to know if the connections that it's opening have had the TCP_NODELAY set. Is there are a way to do this e.g. using netstat to look at the details of an open connection? Is something like strace or system tap my best option?
Sadly you can't after the socket has already been opened. The information linux kernel hands out lacks this information.
You can trace your code via strace and look for lines similar to this (taken from stracing mysql client connecting to a mysql server)
If you're on a BSD or non-linux unixy system
could work ( See this http://stackoverflow.com/questions/1824115/display-socket-options similar question ).