Re: [fpc-devel] How to manually control debug information
Peter Vreman wrote: At 19:36 2-6-2005, you wrote: Hello, I'm writting a custom preprocessor and I would like that the line number information maps to the original file. An example (not real, only an example): ...original.pas... 21 procedure AddFive(var a, b: Integer); 22 begin 23 a := ++b; 24 end; After preprocessor: ...processed.pas... 25 procedure AddFive(var a, b: Integer); 26 begin 27 Inc(b); 28 a := b; 29 end; I would like that stepping in the debugger through AddFive showed original.pas in lines 21 to 24, not processed.pas in lines 25 to 29. How could I do that? That is not possible with fpc Since preprocessed code isn't read by human, why don't change it into procedure AddFive(var a, b: Integer); begin Inc(b); a := b; end; The compiler don't care and you get correct line numbers. ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] How to manually control debug information
I'm writting a custom preprocessor and I would like that the line number information maps to the original file. An example (not real, only an example): ...original.pas... 21 procedure AddFive(var a, b: Integer); 22 begin 23 a := ++b; 24 end; After preprocessor: ...processed.pas... 25 procedure AddFive(var a, b: Integer); 26 begin 27 Inc(b); 28 a := b; 29 end; I would like that stepping in the debugger through AddFive showed original.pas in lines 21 to 24, not processed.pas in lines 25 to 29. How could I do that? If you have a preprocessor, you will also need a binary postprocessor to edit the linenumbers. IOW the preprocessor should keep track that original.pas:21 becomes processed.pas:25, and your binary postprocessor should parse all stabs and patch these occurances. Maybe you need a few dummy units with the same names as the included ones to create entries for these units. However a binary postprocessor is a bit complicated. ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] How to manually control debug information
El Viernes, 3 de Junio de 2005 09:56, Marco van de Voort escribió: If you have a preprocessor, you will also need a binary postprocessor to edit the linenumbers. In the executable? Isn't there any previous step to hook into? Anyway, where could I find information about the structures that should be edited? -- saludos, Nico Aragón ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] How to manually control debug information
El Viernes, 3 de Junio de 2005 09:56, Marco van de Voort escribi?: If you have a preprocessor, you will also need a binary postprocessor to edit the linenumbers. In the executable? Isn't there any previous step to hook into? Yes. The generated assembler. Anyway, where could I find information about the structures that should be edited? gcc docs mainly (stabs) ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] How to manually control debug information
Nico Aragón wrote: El Viernes, 3 de Junio de 2005 09:12, Florian Klaempfl escribió: Since preprocessed code isn't read by human, why don't change it into procedure AddFive(var a, b: Integer); begin Inc(b); a := b; end; The compiler don't care and you get correct line numbers. Clever! But won't the compiler care if a line gets too long? No. The compiler itself doesn't care about line length. I should still change the file name. ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] How to manually control debug information
El Viernes, 3 de Junio de 2005 11:44, Marco van de Voort escribió: El Viernes, 3 de Junio de 2005 09:56, Marco van de Voort escribi?: If you have a preprocessor, you will also need a binary postprocessor to edit the linenumbers. In the executable? Isn't there any previous step to hook into? Yes. The generated assembler. Anyway, where could I find information about the structures that should be edited? gcc docs mainly (stabs) Thank you, also Florian and Peter, of course. It seems that I have more than enough options :-) -- saludos, Nico Aragón ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] How to manually control debug information
gcc docs mainly (stabs) Thank you, also Florian and Peter, of course. It seems that I have more than enough options :-) For an simple stabs parser see rtl/inc/lineinfo.pp ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] How to manually control debug information
Since preprocessed code isn't read by human, why don't change it into procedure AddFive(var a, b: Integer); begin Inc(b); a := b; end; The compiler don't care and you get correct line numbers. Clever! But won't the compiler care if a line gets too long? No. The compiler itself doesn't care about line length. Only you'll get wrong values for the column if the line is longer than 65535 chars. ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel
Re: [fpc-devel] How to manually control debug information
At 19:36 2-6-2005, you wrote: Hello, I'm writting a custom preprocessor and I would like that the line number information maps to the original file. An example (not real, only an example): ...original.pas... 21 procedure AddFive(var a, b: Integer); 22 begin 23 a := ++b; 24 end; After preprocessor: ...processed.pas... 25 procedure AddFive(var a, b: Integer); 26 begin 27 Inc(b); 28 a := b; 29 end; I would like that stepping in the debugger through AddFive showed original.pas in lines 21 to 24, not processed.pas in lines 25 to 29. How could I do that? That is not possible with fpc Peter ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel