Peel and thinly slice the onions crosswise. Put them in a soup pot with the olive oil and butter and season with salt and pepper. Place over medium-high heat and cook, stirring often, until the onions begin to brown, about 5 minutes. Lower the heat to medium-low and continue cooking until the onions are wilted completely and have started caramelizing about 30 minutes.
Raise the heat to medium-high and add the wine. Let it bubble away until you no longer smell the alcohol. Add the broth and bring to a boil. Reduce the heat to low, cover the pot, and cook for 45 minutes. When you are ready to serve, toast the bread slices and put one in each of the 4 soup bowls. Ladle the hot soup over the bread. Using a vegetable peeler, shave thin slices of the cheese over each serving. Serve at once.