Thread: [bugle-users] having problems using gldb-gui
Status: Inactive
Brought to you by:
bmerry
From: kalyan r. <kal...@gm...> - 2012-01-15 16:29:04
|
HI Guys, I am new user of bugle. I am trying to use the gldb-gui to debug google-chrome webgl problems. This is how I have built bugle: sudo scons CCFLAGS="-m32" LINKFLAGS="-m32" libdir=/usr/local/lib32 bindir=/usr/local/bin32 sudo scons install I have tried this gldb-gui /usr/bin/google-chrome --use-gl=egl. The UI opens up and I press run but nothing happens. I tried setting the breakpoint to glCOpyTexImage2D. BUt nothing happnes and chrome is never launched Do I need to do any additional steps?? reg, kalyan |
From: kalyan r. <kal...@gm...> - 2012-01-15 16:30:12
|
Forgot to mention One point: WHen I close the gui , chrome gets launched. I get an error message in the console as follows: ERROR: ld.so: object 'libbugle.so' from LD_PRELOAD cannot be preloaded: ignored. reg, kalyan On Sun, Jan 15, 2012 at 6:28 PM, kalyan reddy <kal...@gm...>wrote: > HI Guys, > > I am new user of bugle. I am trying to use the gldb-gui to debug > google-chrome webgl problems. > > This is how I have built bugle: > > sudo scons CCFLAGS="-m32" LINKFLAGS="-m32" libdir=/usr/local/lib32 > bindir=/usr/local/bin32 > sudo scons install > > I have tried this gldb-gui /usr/bin/google-chrome --use-gl=egl. > > The UI opens up and I press run but nothing happens. I tried setting the > breakpoint to glCOpyTexImage2D. BUt nothing happnes and chrome is never > launched > > Do I need to do any additional steps?? > > reg, > kalyan > |
From: Bruce M. <bm...@gm...> - 2012-01-15 17:01:10
|
On 15 January 2012 18:30, kalyan reddy <kal...@gm...> wrote: > Forgot to mention One point: > > WHen I close the gui , chrome gets launched. I get an error message in the > console as follows: > > ERROR: ld.so: object 'libbugle.so' from LD_PRELOAD cannot be preloaded: > ignored. Hi I suspect the problem is the /usr/bin/google-chrome is a shell script. gldb doesn't currently handle that case very well, since it tries to intercept GL commands in the shell instead of in the real process. In such cases the easiest thing is usually to copy the shell script and edit it to call gldb-gui where it would normally exec the real binary. I think Chrome also uses multiple processes for sandboxing reasons, which will probably also confuse gldb-gui. If it doesn't work, something you can try is to 1. Edit src/platform/posix/platform/threads.h and #define DEBUG_CONSTRUCTOR to 1 just above where it gets tested. 2. Use the TCP/IP protocol (http://www.opengl.org/sdk/tools/BuGLe/documentation/gldb-gui.1.php#gldb-gui-MAN-remote-tcp) on the local machine. The first step is to ensure that Chrome only opens the TCP port on the first GL call, and hence that only the process that is doing the GL work will try to listen for the debugger, while using the TCP/IP protocol means that gldb-gui can talk to whichever is the right process, instead of trying to talk to the first process it launched. It might not work, particularly if Chrome is using GL for its own purposes, or if every process does some GL initialisation that triggers the debugger filter. I haven't tried to do any WebGL debugging, so if you figure out how to make it work, please let me know and I'll add it to the FAQ. Good luck Bruce -- Dr Bruce Merry bmerry <@> gmail <.> com http://www.brucemerry.org.za/ http://blog.brucemerry.org.za/ |
From: kalyan r. <kal...@gm...> - 2012-01-15 19:05:41
|
I have been able to launch chrome browser able to run webgl demos through the gldb gui by doing as follows: a)Forced chrome to use single process with --single-process flag. b)Chrome to use egl. But I am unable to debug, I am wondering if I need to do anything to enable egl support in gldb. I have set break points which are never triggered. If I ask chrome to use gl it crashes the whole application. I tried the following : cd /opt/google/chrome /opt/google/chrome$gldb-gui ./chrome --single-process --use-gl=egl reg, kalyan On Sun, Jan 15, 2012 at 7:01 PM, Bruce Merry <bm...@gm...> wrote: > On 15 January 2012 18:30, kalyan reddy <kal...@gm...> wrote: > > Forgot to mention One point: > > > > WHen I close the gui , chrome gets launched. I get an error message in > the > > console as follows: > > > > ERROR: ld.so: object 'libbugle.so' from LD_PRELOAD cannot be preloaded: > > ignored. > > Hi > > I suspect the problem is the /usr/bin/google-chrome is a shell script. > gldb doesn't currently handle that case very well, since it tries to > intercept GL commands in the shell instead of in the real process. In > such cases the easiest thing is usually to copy the shell script and > edit it to call gldb-gui where it would normally exec the real binary. > > I think Chrome also uses multiple processes for sandboxing reasons, > which will probably also confuse gldb-gui. If it doesn't work, > something you can try is to > 1. Edit src/platform/posix/platform/threads.h and #define > DEBUG_CONSTRUCTOR to 1 just above where it gets tested. > 2. Use the TCP/IP protocol > ( > http://www.opengl.org/sdk/tools/BuGLe/documentation/gldb-gui.1.php#gldb-gui-MAN-remote-tcp > ) > on the local machine. > > The first step is to ensure that Chrome only opens the TCP port on the > first GL call, and hence that only the process that is doing the GL > work will try to listen for the debugger, while using the TCP/IP > protocol means that gldb-gui can talk to whichever is the right > process, instead of trying to talk to the first process it launched. > It might not work, particularly if Chrome is using GL for its own > purposes, or if every process does some GL initialisation that > triggers the debugger filter. > > I haven't tried to do any WebGL debugging, so if you figure out how to > make it work, please let me know and I'll add it to the FAQ. > > Good luck > Bruce > -- > Dr Bruce Merry > bmerry <@> gmail <.> com > http://www.brucemerry.org.za/ > http://blog.brucemerry.org.za/ > |
From: Bruce M. <bm...@gm...> - 2012-01-16 17:50:18
|
> I think Chrome also uses multiple processes for sandboxing reasons, > which will probably also confuse gldb-gui. If it doesn't work, > something you can try is to > 1. Edit src/platform/posix/platform/threads.h and #define > DEBUG_CONSTRUCTOR to 1 just above where it gets tested. > 2. Use the TCP/IP protocol > (http://www.opengl.org/sdk/tools/BuGLe/documentation/gldb-gui.1.php#gldb-gui-MAN-remote-tcp) > on the local machine. This seems to (mostly) work for me on Chromium. I edited a copy of the shell script that launches Chromium to contain export BUGLE_DEBUGGER=tcp export BUGLE_DEBUGGER_PORT=9118 export LD_PRELOAD=libbugle.so exec $LIBDIR/$APPNAME --single-process "$@" The --single-process seems to be necessary to prevent the processes from fighting over the TCP port. When I run the shell script, it blocks waiting for the TCP/IP connection. After that I start gldb-gui separately and tell it to connect to port 9118 on localhost. At that point the Chromium window appears and I can browse to a WebGL site, then stop it in the debugger and examine state. I am seeing some warnings coming back from the debugger so it's not completely working, but it looks like it should be usable. Bruce -- Dr Bruce Merry bmerry <@> gmail <.> com http://www.brucemerry.org.za/ http://blog.brucemerry.org.za/ |