Debugging my Console Application displays garbage (Windows 10, win32)
I call this a “question” but its may well be a “bug report”
It shows corrupted variables though some but not all can WRITE correctly.
- Fortran is calling LAPLIBO, my C++ static library (which also calls Alglib C++).
- Issue occurs both calling LAPLIB, a DLL equivalent
- I build via CMAKE
See Below, where I set buf=”” but it is showing as garbage
Failed attempts to fix include:
- Gutting debug/ release and rebuilding
- And again and again
- Loading the same VS and Fortran on another similar notebook
It would be convenient for now if did not have to
- Download the whole project
- Do a very tedious and not guaranteed downgrade lf both VS and Fortran
I am hoping someone is both familiar with the issue and, perhaps, has a fix
Dell M4800 and Windows 10
- Microsoft Visual Studio Community 2015
- Version 14.0.25424.00 Update 3
- Microsoft .NET Framework
- Version 4.6.01038
- Visual C++ 2015 00322-20000-00000-AA674
- Microsoft Visual C++ 2015
- Intel® Parallel Studio XE 2016 Update 1 Composer Edition for Fortran Windows* Package ID: w_comp_lib_2016.1.146
- Intel® Parallel Studio XE 2016 Update 1 Composer Edition for Fortran Windows* Integration for Microsoft Visual Studio* 2015, Version 16.0.0058.14, Copyright © 2002-2015 Intel Corporation. All rights reserved.
Regards, Peter
I'm going to take a guess and ask if you have optimization enabled for this configuration. If so, it would explain what you are seeing. I was working on another customer's project yesterday where there were similarly strange results in the debugger. Even though it was a Debug configuration, /O2 had been set. This will make viewing of locals in the debugger unreliable.
連結已複製
Judging from the screenshot I have a question and a remark:
- Did you specify two arguments when starting the debug session? You can do that from within Visual Studio
- Strings that are not set generally have rubbish as their content, they are not initialised to spaces
Yes, I specified two args. Not only that the first the input file "filei" enabled the correct files to be loaded. But "fili" displayed garbage in the debugger. As I said, some strings displaying as garbage are garbage as they Parse into many more fields than Imexpect.
And you will have seen "buf="" being displayed as garbage in the attached image
The problem must be in GETARG then.
Could you try instead these lines to retrieve the arguments:
call get_command_argument( 1, filei ) call get_command_argument( 2, fileo )
or the other way around (I am not entirely sure in what order you specify them ;). That way you exclude the problem and you can see whether the values of character strings are shown correctly or not.
This is really odd. But this is clearly a different issue than I thought. The program works fine, just the debugger is having trouble showing the right information - at least, that is my conclusion at this moment. I will have to leave this to people more knowledgeable on this subject.
I'm going to take a guess and ask if you have optimization enabled for this configuration. If so, it would explain what you are seeing. I was working on another customer's project yesterday where there were similarly strange results in the debugger. Even though it was a Debug configuration, /O2 had been set. This will make viewing of locals in the debugger unreliable.
Many thanks Steve, you were right.and I was a ?????
With some help I am converting to CMAKE as was spending more time sorting Visual Studio parameters issues than actual programming.
So I had better tweak some CMakeLists.txt files. But I will still try to stick with CMAKE!
Peter
