Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] NT Launch/Build Abort

> 
> 
> Hi!
> 
> No patch this time since I'm sure the build model in the head is too far 
> away from 1.0.1 for the patch to be useful and many of the changes were in 
> Tensilica specific launchers. Never-the-less I did want to take a moment to 
> mention an issue we hit in usability testing with debugging and building on NT.
> 
> The basic problem has to do with gdb and the NT filesystem. While gdb is 
> running it keeps an open file descriptor to the executable. NT will not let 
> you remove or modify a file that is presently opened. This causes makefiles 
> run on NT to be unable to write an executable. The message that the linker 
> outputs does not lead you to the conclusion "this was because I've got an 
> open launch on this exe in a perspective that's currently not even visible."
> 
> We added a scan of the running launches to the builder and if any launches 
> are involved with the project being built then we give the user a choice 
> between terminating the launches or continuing the build.
> 
> Perhaps this issue just affects our tools, but I suspect it's not unique to 
> us. As you look at the build model on the head, please do keep this 
> "exclusive" nature of the NT file system in mind. You can't build and debug 
> at the same time and the user does get confused about the build failures 
> this causes.
> 

Some other possibilities:
- It is a little vague in my memory, but I do remember that you can tell gdb
  not to hold a write access when debugging.  Not sure it that will solve the problem.

- Another possibility is to create a Session property  on the project 
  that the builder could check before building.

- The debugger could make a copy of the executable before running.

But all the solutions are messy and you do not want to push this
on other platform less brain-d^H^H^H^H^H^H^H .. susceptible to this behaviour.  



Back to the top