Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7944 Discussions

cannot connect to X server :0.0 debugging Qt app with idbc

pbeadling
Beginner
1,285 Views

Hi,

I've recently started using Qt with Intel's latest compiler in the Eclipse IDE (Linux 64-bit).

All is well, apart from one glitch.

Building and running Qt applications works fine in Eclipse (supported by Intel's and Qt's plugins), but when I come to debug graphical applications (usingIntel plugin)I get the following in the Console window as soon as I create a QApplication class in main() and my app terminates:

cannot connect to X server :0.0

I'm using idbc - Intel's debugger as suggested in the documentation:

Use "Standard Create Process Launcher"

and select "Intel Debugger" in the debugger tab.

This works fine for non-graphical apps.

I know the error is a standard Qt error complaining it can't spawn a connection to X to draw the application on the screen. But :0.0 does indeed exist and I've even tried disabling X authentication in case Eclipse is spawning it in a weird and wonderful way.... no dice. Modifying the DISPLAY environment variable changes the error to report the address I set it to, so it appears it is picking up the right environment.

Determined to use this setup (everything else is nice, after all), I've found if I pass into my app as parametersthe Qt specific override "-display :0.0" then it can at least spawn the GUI, but I get warnings:

QGtkStyle was unable to detect the current GTK+ theme.
_IceTransOpen: Unable to find transport for local
Qt: Session management error: None of the authentication protocols specified are supported

And my app is displayed looking pretty ugly with not theme at all applied.

I can live with this - providing no other problem occur, but it seems like a trivial problem - The Eclipse IDB plugin is spawning the app in a way which is stopping it behaving as would inside a normal terminal window. Running idbc on my app from a separate terminal using exactly the same command as I can see Eclipse is using, works fine *IF* I remove the -tty switch:

/opt/intel/composerxe-2011.0.084/bin/intel64/idbc -gdb -q -nw -i mi -tty /dev/pts/9 --cd=/home/phil/dev/c++/workspace/AddressBook --nx /home/phil/dev/c++/workspace/AddressBook/AddressBook

...and none of this occurs using GDB, where the GUI pops up just fine.

I'm out of ideas - does anyone have any suggestions how to rectify this?

Thanks,

Phil.

0 Kudos
4 Replies
aazue
New Contributor I
1,285 Views
Hi

That is strange plug-in normally start process from is under child ,so.. ,
same address display.. but you can having only 0:0 declared by default

use command echo $DISPLAY for verify

about: (Use "Standard Create Process Launcher")
create as loader an new file contain

export DISPLAY=192.168.?.?:0.0
(command to load debuger)
(change access with chmod 777 to this file)

see also command xhost without parameter , if your IP address hosted...
if not add with ( xhost + 192.168.?.?) or an localhost 127.0.0.1

Sometime call X:0.0 address in command line to specific program not working ,
required DISPLAY stored as (ENV).

I have already observed similar problem (AIX O/S) when i want use an other personal
graphic desktop that default; also with Linux but I not remember exactly
situation where, with my old head..
Regards
With an small time disposed now I finish ...
About;

Qt: Session management error: None of the authentication protocols specified are supported

maybe ;QSessionManager compatibility problem , with an gdm or xdm etc ..
if you have same process already started.
but is not problem for you, when task using debugger as root..
is not task same you must control users
but if you are a perfectionist ..
Start Xorg only in level (xinit) for make test as clear that possible
If you are not concerned using desktop, maybe ,search side (dbus) but i think
message error is false only problem access xhost or other not in relation with
protocol authentication .
when you want having choice several desktop with session manager require one package added,
(It starting correctly initialized with his resources)
Grrrrrrrrr...!..~@^!!.rrrr... I not remember the name... maybe it can solve your problem ??

....

_IceTransOpen: Unable to find transport for local

for libice in your directory linked user
file is hidden (use ls -a)
chown (your_no_root__username) ~/.ICEauthority
chmod 777 ~/.ICEauthority




Regards
0 Kudos
Rob_Mueller-Albrecht
1,285 Views
Hi Phil,

we looked into his over the weekend. The way our debugger integration is implemented what you are describing should normally work.

Howeverwe didnt do any special GUI validation on this integration item along with QT, so it is possible we have issues there after all.

We will investigate and get back to you. Sorry for not having a good answer right away.

Rob
0 Kudos
aazue
New Contributor I
1,285 Views
Hi
about:
(so it is possible we have issues there after all.)


Theoretically there is no relationship between an specificity idbc and display process
X11 DISPLAY is positioned front .. it is completely independent. you change address
IP you move process external to other screen.

DISPLAY value is required in command is only when you are not in root profil user or xorg server not loaded.

If problem loader he could be general to all program using shared child (Frame) (when text model)
process called by plugin. ..


Regards
0 Kudos
Rob_Mueller-Albrecht
1,285 Views
Hi Phil,

we tried to reproduce your problem. To do so we used the follwoing configuration:

Fedora 14, 64bit with the following environment:

Eclipse 3.5.2, 64 bit

Java 1.6, 64 bit

IDB CDT Plug-in 6.0.0

QT 4

and of course the latest IDB 12.0

Since it works on our end, there must be somethign specific to your setup. Can you give us a list of all the relevant components in your software stack similar to what I just listed? Are we missing something else in your setup perhaps?

Thanks, Rob

0 Kudos
Reply