23.02.2016 21:47, Adriano dos Santos Fernandes wrote:
> Hi!
>
> Debug cpp files generated from epp ones are a nightmare.
>
> The debugger goes/shows cpp line numbers where you want to see epp lines.
>
> Gpre has some support for #line directive but was not working properly.
>
> Attached I put a patch to fix it. It's rudimentary, it overloads std C
> functions (*put*, *print*) to not change gpre too much.
>
> It does changes only the internal language used in our build.
>
> Here is a gdb session where I put a breakpoint in METD_get_relation
>
> http://pastebin.com/raw/B4qbQVrE
>
> Lines from 1388-1416 are the epp lines. You see the epp filename where
> gdb breaks.
>
> Lines from 3357-3364 are the cpp lines. You see the cpp filename with bt.
>
> I want this. See generated code in the generated file and source code in
> the source file.
>
> I have no idea if this works great in Visual Studio, I believe it's even
> great than in gdb. When I used Visual Studio, sometimes I edited cpp
> files while debugging and lost changes.
>
> What do you think and can you test it in Windows?

1. This code prints file names as is (with no duplicated slashes)

@@ -2619,6 +2615,16 @@ static void pass2( SLONG start_position)
                                fputc('\n', gpreGlob.out_file);
                }

+               if (!continue_flag &&
+                       sw_lines &&
+                       gpreGlob.sw_language == lang_internal &&
+                       gpreGlob.out_file.filename &&
+                       !(action->act_type == ACT_routine && 
!action->act_object))
+               {
+                       fprintf(gpreGlob.out_file, "\n#line %"SLONGFORMAT" 
\"%s\"",
+                               gpreGlob.out_file.line + 2, 
gpreGlob.out_file.filename);
+               }
+



in result it generates code like:

/**** end of GPRE definitions ****/

#line 65 "F:\\FB2\\fb30.new\\src\\burp\\OdsDetection.epp"               << good

#define DB                      tdgbl->db_handle
#define gds_trans       tdgbl->tr_handle
#define isc_status      tdgbl->status_vector


void detectRuntimeODS()
{
#line 244 "F:\FB2\fb30.new\gen\preprocessing.cpp"                       << BAD 
!!!


and a lot of warnings like:

2>------ Build started: Project: yvalve, Configuration: Release Win32 ------
1>F:\FB2\fb30.new\src\burp\OdsDetection.epp(65): warning C4129: 'F' : 
unrecognized character escape sequence 
(..\..\..\gen\burp\OdsDetection.cpp)
1>F:\FB2\fb30.new\src\burp\OdsDetection.epp(65): warning C4129: 'g' : 
unrecognized character escape sequence 
(..\..\..\gen\burp\OdsDetection.cpp)
1>F:\FB2\fb30.new\src\burp\OdsDetection.epp(65): warning C4129: 'p' : 
unrecognized character escape sequence 
(..\..\..\gen\burp\OdsDetection.cpp)
1>F:\FB2\fb30.new\src\burp\OdsDetection.epp(73): warning C4129: 'F' : 
unrecognized character escape sequence 
(..\..\..\gen\burp\OdsDetection.cpp)
1>F:\FB2\fb30.new\src\burp\OdsDetection.epp(73): warning C4129: 'g' : 
unrecognized character escape sequence 
(..\..\..\gen\burp\OdsDetection.cpp)
1>F:\FB2\fb30.new\src\burp\OdsDetection.epp(73): warning C4129: 'p' : 
unrecognized character escape sequence 
(..\..\..\gen\burp\OdsDetection.cpp)


   Other code in gpre.cpp\pass2() used "backlash_fixed_file_name" when emits 
"#line" directives, btw




2. VC IDE works badly with new files. I can put breakpoint in .epp files, yes, 
but when i step into
preprocessed code - IDE lost position and show me *nothing* until i set 
breakpoint in some not preprocessed
place. Also, i don't know how debugger (VS or WinDBG) will react on memory dump 
produced by such binary.

Regards,
Vlad

PS If you need it so much, i offer to apply patch but disable #line generation 
for release build in public
source tree. And - after v3 release, please, not now


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to