[wave] trace doesn't output errors.
I've got a really annoying and difficult to track down PP error. I'm attempting to use wave to see the expansion, but it is slow going. The output is correct, in both the g++ PP and the wave parser. g++ states: *error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given*, wave states *warning: too few macro arguments: BOOST_PP_SEQ_ELEM_III*, but when I try using the tracer it doesn't say when this occurs. Is it possible to turn this on? Or is there no 'on' and I have to go into the wave code and code it on? If the latter, where would I do this? Thanks, Adrian -- View this message in context: http://boost.2283326.n4.nabble.com/boost-wave-trace-doesn-t-output-errors-tp... Sent from the Boost - Dev mailing list archive at Nabble.com.
On 5/6/2013 1:53 PM, Adrian_H wrote:
I've got a really annoying and difficult to track down PP error. I'm attempting to use wave to see the expansion, but it is slow going. The output is correct, in both the g++ PP and the wave parser. g++ states: *error: macro "BOOST_PP_SEQ_ELEM_III" requires 2 arguments, but only 1 given*, wave states *warning: too few macro arguments: BOOST_PP_SEQ_ELEM_III*, but when I try using the tracer it doesn't say when this occurs.
Is it possible to turn this on? Or is there no 'on' and I have to go into the wave code and code it on? If the latter, where would I do this?
You should be able to look at wave's output and see exactly the sequence of macro expansions which cause the error you are seeing.
Edward Diener-3 wrote
You should be able to look at wave's output and see exactly the sequence of macro expansions which cause the error you are seeing.
One would think that. Unfortunately, this is not the case. I don't quite understand it. The output is good, but there are errors in expansion. I've attached the trace here http://boost.2283326.n4.nabble.com/file/n4646830/trace.7z . Maybe you can see where the problem is? It's only 16 thousand plus lines. If wave's trace could state "hey, this is where the expansion failed!", that would be a great time saver. Adrian -- View this message in context: http://boost.2283326.n4.nabble.com/boost-wave-trace-doesn-t-output-errors-tp... Sent from the Boost - Dev mailing list archive at Nabble.com.
Edward Diener-3 wrote
You should be able to look at wave's output and see exactly the sequence of macro expansions which cause the error you are seeing.
One would think that. Unfortunately, this is not the case.
I don't quite understand it. The output is good, but there are errors in expansion. I've attached the trace here http://boost.2283326.n4.nabble.com/file/n4646830/trace.7z . Maybe you can see where the problem is? It's only 16 thousand plus lines.
If wave's trace could state "hey, this is where the expansion failed!", that would be a great time saver.
What do you mean by that? Where should it point to? The uppermost invocation site? The lowermost macro replacement which failed, somewhere in between? Regards Hartmut --------------- http://boost-spirit.com http://stellar.cct.lsu.edu
Hartmut Kaiser wrote
If wave's trace could state "hey, this is where the expansion failed!", that would be a great time saver.
What do you mean by that? Where should it point to? The uppermost invocation site? The lowermost macro replacement which failed, somewhere in between?
Well, if there was an error that states that there are too few or too many macro arguments, that means somewhere during scanning/rescanning there was a macro invoked with too many/few arguments. So, the lowest macro replacement which caused this error and what the parameter set that was passed would be AWESOME! Cheers! Adrian -- View this message in context: http://boost.2283326.n4.nabble.com/boost-wave-trace-doesn-t-output-errors-tp... Sent from the Boost - Dev mailing list archive at Nabble.com.
Hartmut Kaiser wrote
If wave's trace could state "hey, this is where the expansion failed!", that would be a great time saver.
What do you mean by that? Where should it point to? The uppermost invocation site? The lowermost macro replacement which failed, somewhere in between?
Well, if there was an error that states that there are too few or too many macro arguments, that means somewhere during scanning/rescanning there was a macro invoked with too many/few arguments. So, the lowest macro replacement which caused this error and what the parameter set that was passed would be AWESOME!
Isn't that what you see in the trace you sent in the very end? There you see BOOST_PP_SEQ_ELEM_III(BOOST_PP_SEQ_ELEM_0) right before the output stops. Further up you can see, that this particular problem occurs while trying to expand BOOST_PP_SEQ_ELEM_II(BOOST_PP_SEQ_ELEM_2 (volatile)(const)) Etc. Regards Hartmut --------------- http://boost-spirit.com http://stellar.cct.lsu.edu
Hartmut Kaiser wrote
Hartmut Kaiser wrote Well, if there was an error that states that there are too few or too many macro arguments, that means somewhere during scanning/rescanning there was a macro invoked with too many/few arguments. So, the lowest macro replacement which caused this error and what the parameter set that was passed would be AWESOME!
Isn't that what you see in the trace you sent in the very end? There you see
BOOST_PP_SEQ_ELEM_III(BOOST_PP_SEQ_ELEM_0)
right before the output stops. Further up you can see, that this particular problem occurs while trying to expand
BOOST_PP_SEQ_ELEM_II(BOOST_PP_SEQ_ELEM_2 (volatile)(const))
Ahhh, yes, that's it. Couldn't see the tree for the forest. :/ Thanks, fixed now. Adrian -- View this message in context: http://boost.2283326.n4.nabble.com/boost-wave-trace-doesn-t-output-errors-tp... Sent from the Boost - Dev mailing list archive at Nabble.com.
Oh, sorry, I should clarify. It give the correct output under g++. Wave just barfs and stops. -- View this message in context: http://boost.2283326.n4.nabble.com/boost-wave-trace-doesn-t-output-errors-tp... Sent from the Boost - Dev mailing list archive at Nabble.com.
participants (3)
-
Adrian_H
-
Edward Diener
-
Hartmut Kaiser