Really, I think there are several different sides to the issue of gun homicide - to the point that it's almost like they are different issues
One aspect - inner city violence, much of it related to the drug trade and gang affiliation; armed robbery probably falls into this category as well. Some of the problems related to poverty and unemployment factor into this type of violence.
Second aspect - the mass shooters such as the Columbine killings, James Holmes, Sandy Hook/Newton CT., the Charleston, SC church killings, etc etc; mental illness probably plays a role here. This typically involves shooting at random people who are not known to the killer
Third aspect - anger and jealousy - I think today's shooting in Roanoke fall into this category, though the shooter may have had some mental illness issues as well, but there are plenty of other homicides that are just simply someone going into a rage and shooting someone they perceive to be a rival or threat. Often times this is someone they know.
I think I had a fourth in mind, but I don't remember what it was.
(edit: I think the fourth one was accidental shootings, but that's an aspect with solutions that would be less directly related to the others)
At any rate, the factors frequently mentioned here as "root causes" , such as poverty, unemployment, unstable families etc. etc. etc. really play a role only in the first aspect. So what might be a way to start looking at solutions for one aspect of the problem (that is, for those who perceive it as a problem) is not going to do anything to resolve the issue of gun violence in those aspects where poverty and unemployment do not have a role - such as a jealous husband who kills his wife; or the angry young man who hates blacks.