Jump to content
alank2

12.2 Crashing during debugging

Recommended Posts

I've been using 10.3.3 for a long time, but needed to upgrade to a newer version because TMultipartFormData does not properly work on it.  I get a 400 BadRequest instead of a 200 OK.  Something with this component must have been updated because it works in later versions.

 

I couldn't get 12.2 to install on the machine I have 10.3.3 because for some reason it won't install the bds.exe and then gives an error trying to run it (embarcadero unable to execute file c:\program files (x86)\embarcadero\studio\23.0\bin\bds.exe).

 

Not getting past that I decide to install it on a different machine (win11 instead of win10) that I am moving to (new notebook).  Install goes fine there, but it has a weird debugging crash problem I can't figure out:

 

I am building a program in debug mode.  It has one unit in it.

I can step into the program.

I can go to cursor and step through FormShow for Unit1.

I can go to cursor and step through two different functions that are called by TStartTimer.

BUT, if I go to cursor inside of even a mostly empty TStartTimer, it will hang for 60 seconds and the compiler/application will close and leave me looking at the desktop.

 

Even if I cut this function down to this:

 

void __fastcall TFMainform::TStartTimer(TObject *Sender)
{
//  wchar_t ws1[4096];
  wchar_t ws1[1024], ws2[1024], wts1[1024], cmd[1024];

 

  //disable timer
  TStart->Enabled=false;

}

 

It will currently WORK in the above scenario.  I can go to cursor the TStart->Enabled=false; statement and then step over/run and all is fine.

 

If I change the variables so that the ws1 is unremarked and the line with the 4 variables below it is remarked, it will CRASH despite both still being the same amount of overall variables put on the stack.

 

I've tried the classic win32 compiler and the newer one, same result.

I've tried enabling or disabling codeguard, same result.

 

The code works if I don't try to stop inside this function.  If I unremark everything that was in there to make the API call, I get a 200 OK back from it.  It just seems to hang if I try to stop and step inside it.

 

edit to add; 11.3 does not have the problem.  it works fine there.

 

also, while I'm piling on 12.2, if I open the project and do a build immediately, I get errors like this:

image.thumb.png.883c232f487ad575f8d3876a6aec747c.png

If I then double click unit1.cpp to open it and repeat the build, these errors go away.

 

Any ideas?

 

 

Edited by alank2

Share this post


Link to post
52 minutes ago, alank2 said:

Any ideas?

The listed errors are linker ones, which means there is a confliction in the compiled source units, to understand these errors you have to get in the shoes of the compiler and linker, the compiler check for the source file time for last modification and build the .o/.obj (same goes for the .dcu in Delphi), (well dates and times among other parameters but most relevant is the time) if these times are identical then will skip compiling !!, assuming it is the same and nothing changed then nothing to recompile, linker on other hand will build the executable binary from scratch and from its own build version, here comes the unresolved externals... in case the .o/.obj files were built/compiled with different compiler form different IDE.

 

Delphi doesn't suffer form this because DCU files has the compiler version included (again among others, like all the compiling switches are there in the DCU) , while .o/.obj files can't be used effectively as dcu files.

 

So it is either bug in the compiler where it should check for the compiler version (and project switches) before skip compiling,

Or you have to clean your paths from all artefacts (.o , .obj...) to be able to build on different compiler,

I can't say for sure about this being compiler bug or not.

  • Like 1

Share this post


Link to post

I appreciate the reply.  I was not doing a make, but a build for the compile that generates the linker errors, so it shouldn't (I would think) use any existing data, but I'm not sure if it uses any precompiled headers or similar.  I know it shouldn't have an error one way (just opening a problem) and not 3 seconds later after just opening a unit like Unit1.cpp.  It should build either of those states exactly the same.

 

As odd as that error is, the big one is the debugging one is the deal breaker for me being unable to use 12.2.

 

I'll try to delete any intermediate files and see if that changes anything.

 

I suppose I could build a new project file instead of upgrading my 10.3.3 one to see if that has any bearing on the issue as well.

 

Thanks!

Share this post


Link to post

Did you create a new project for version 12.2 or did you just open the one you used with the earlier version?

 

Yeah, try creating a new project.

Edited by weirdo12
  • Like 1

Share this post


Link to post

This bug is easily reproduced.

 

Launch RAD Studio 12.2

File -> New -> Windows VCL Application - C++ Builder

Save All - give the project a new folder to work in and save the files

Double Click Target Platform - Windows 32-bit to select it

F12 on unit1.cpp to go to code.

Insert the below bold lines in the form constructor

 


__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
  int i1;

  i1=5;
}

 

Save All

Project -> Build All

Press F4 on the i1=5; line

Press F8 to step forward (this works as expected)

 

Now change it to this by adding a declaration for headers:

 


__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
  int i1;

  char headers[4096];

  i1=5;
}

 

Save All

Project -> Build All

Press F4 on the i1=5; line (it will stop here making you think it is working correctly, but it is hung.  You can try to press F8, but it will not step forward and about 30-60 seconds later RAD Studio will crash and disappear form the desktop).

 

Share this post


Link to post

I opened up a bug request at the Embarcadero site (RSS-1987) for this.

Share this post


Link to post

If you use "Twine compile" then you will get following error:

[C++ Error] fmain.cpp(15, 26):  unknown type name '´╗┐'

IDE will survive without problem.

image.thumb.png.9c162edd2e894e34992aa19aedc635dd.png

 

  • Like 1

Share this post


Link to post

I can confirm that I get the same problem as you (RSS-1987). I get the same issue if I compile with TwineCompile. @Jirka52This is what you would expect - it's not a compile time error - it is a debugger issue. If you get a compile time error there must be a problem with your source file. (or something else strange).

I also get the same issue if I add a line:   

 

  String S = _D("μ \u00B5 α Ω °C  © Å ");
 

and then save the file - this forces the file encoding to be UTF-8 with a BOM identifier.

Definitely a bug.

 

What is interesting is that the IDE works fine with target of Win64 (traditional) or Win64 (modern). 

What is interesting and surprising is that the IDE hangs in the same bad way if you use the Win32 classic compiler.

 

 

  • Like 1

Share this post


Link to post
On 10/1/2024 at 6:28 PM, alank2 said:

I opened up a bug request at the Embarcadero site (RSS-1987) for this.

I can't find this RSS report at https://embt.atlassian.net/ - Are you sure it got entered correctly? Can you post a URL to in this thread please?

  • Like 1

Share this post


Link to post

https://embt.atlassian.net/servicedesk/customer/portal/1/RSS-1987

 

They changed its status to Open.

 

>I also get the same issue if I add a line:   

>  String S = _D("μ \u00B5 α Ω °C  © Å ");

>and then save the file - this forces the file encoding to be UTF-8 with a BOM identifier.

>Definitely a bug. 

 

You might add this note to the case link above.

 

>What is interesting is that the IDE works fine with target of Win64 (traditional) or Win64 (modern). 

 

I agree, tested this and it worked fine.

 

>What is interesting and surprising is that the IDE hangs in the same bad way if you use the Win32 classic compiler.

 

I tried newer and classic, both failed.  Also codeguard on or off, both failed.

Share this post


Link to post

@alank2I now do have access to the RSS and have updated the posting thread with my confirmation of the issue.

  • Like 1

Share this post


Link to post
On 10/4/2024 at 8:54 AM, Roger Cigol said:

I now do have access to the RSS and have updated the posting thread with my confirmation of the issue.

Must be nice.  I still don't have access to other people's reports.

Share this post


Link to post
16 hours ago, Gord P said:

Must be nice.  I still don't have access to other people's reports.

It seems as if the current system allows people to make posts as either "private" (in which case no one else can see them) or "public". 

https://embt.atlassian.net/servicedesk/customer/portal/1/RSS-1987

was originally a "private" posting but has been made "public". @Gord P you should be able to view this now....

 

Share this post


Link to post

Thanks but actually my gripe was broader.  I was unable to see any requests period.  It had been over a week since I signed up to the site (again) but I can now see all requests, including this one.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×