if you use basic free shell command then "free" really means totally unused memory. what you should look at is available as OS can easily free most of memory occupied by cache.
What I don't get is why swap is going up. I don't think this is memory issue but something else.
Try run "gdb kstars" then press enter "run" command and wait until kstars crash. Then use "bt" command to get backtrace and post it here.