You didn't say how big your dog is and I agree with jaybay and AmandaRae and do the check with something she has chewed on to be sure it is not intestinal. But if you think it is gingivitis (the gums are usually red, may be slightly swollen, tender to the touch and/or bleeding) try giving her some raw neck bones (found in the meat section of your supermarket or meat market as soup bones). They usually have a good amount of meat left on them as well, and the grinding of tooth against bone will dislodge a lot of the plaque that has built up on the teeth. Natural toothbrush for dogs! Place the bone and dog on an old blanket or towel, if inside, and wash with Murphy's Oil soap to remove the bloodstains. If she will allow it and you can stomach it, you can also try scraping or popping somre of it off with your finger or thumbnail. The gums may be tender and bleed if you scrape them so go carefully.
Gingivitis can be helped with vitamin C also.
I speak from experience because I inherited a Yorkie (at 6 years old) with an extreme case of gingivitis and to use my vet's words -- more plaque than he had ever seen and sinus infection (due to the gum infection spreading). With a better diet than she had had, vitamin C and lots of bones (and my pulling the loosest ones that caused her pain when she bit down), her gums eventually healed and tightened up around her remaining teeth. Even with the missing teeth, she enjoyed the bones (the meat she got off them -- the most!) until she died this year at 14.
I couldn't afford all the pre tests and teeth cleaning fees, so I had to research and do trial and error. Her teeth were not wonderfully white when she died, but the plaque was greatly reduced and she ate without pain.
A constant infection that gingivitis is in the mouth can cause other problems in the body's systems as well and bone loss for the teeth that are present, so it is best to get it controlled early. And that includes people! Your gums should NOT bleed unless you cut them. It is NOT "normal".
you can brush thier teeth.. they sell special toothpaste and brushes for your dog at pet stores.. that is what I do to my dog.. I brush his teeth every other day and it works great.. his teeth look great and his breath smells nice.. what i also do is just splash a little listerine on his toothbrush and pass it along his teeth.. this is not poison because you are using a very small amount. Works wonders!
Jaybay is right, bad breath is not merely a nuisance. It can be indicative of something much more serious such as disease. Plaque buildup on the teeth will slowly poison your dog. This is especially true in smaller breeds. Because their mouth is so small, the teeth are compacted and plaque buildup is even more likely.
Aside from that, all dogs should have a professional teeth cleaning annually. Expect to pay from $75-$100 for this procedure. In the meantime you can brush a dog's teeth daily to help fight plaque. It takes 36 hours for plaque to harden so brushing once daily is adequate. Never use toothpaste intended for human use of course. Try some different dog toothpastes until you find one your dog approves off.
Wet food is especially bad for teeth. If you MUST feed wet food, feed a little dry afterwards to help clean the teeth. Also, baby carrots are excellent treats to feed daily as they cleanse the teeth.
It may be something more than simple bad breath from gingivitis. How old is your dog, and does she have any digestive issues? How long has it been since she's had a vet exam? There are some conditions - some very serious - that can cause bad breath, like kidney or liver disease.
A member here (Karla - was that you?) mentioned not long ago that one way to tell if the odor is coming from the dog's mouth is to smell something the dog has recently chewed. If she likes to chew on soft toys, have a play session and then give it a sniff. If you detect the same odor, then it probably IS a dental problem.
If she's a senior dog (over 7) it would be worthwhile even so to have some basic lab work done to make certain all her organs are working well. :-)