aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/xfree86/doc/devel
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/hw/xfree86/doc/devel')
-rw-r--r--xorg-server/hw/xfree86/doc/devel/DebuggingHints192
-rw-r--r--xorg-server/hw/xfree86/doc/devel/Makefile.am1
-rw-r--r--xorg-server/hw/xfree86/doc/devel/Makefile.in72
3 files changed, 19 insertions, 246 deletions
diff --git a/xorg-server/hw/xfree86/doc/devel/DebuggingHints b/xorg-server/hw/xfree86/doc/devel/DebuggingHints
deleted file mode 100644
index 300fe4813..000000000
--- a/xorg-server/hw/xfree86/doc/devel/DebuggingHints
+++ /dev/null
@@ -1,192 +0,0 @@
-
- Xserver Debugging
- =================
-
-This file is intended to collect helpful hints on Xserver debugging.
-I merely outline my experiences here. Somebody else might have better
-methods on doing it. This person is therefore invited to share this
-experience with the rest of the world by adding it here.
-
-Paul Flinders has made some patches to gdb to add support for loadable
-modules. This version of gdb is currently available as binary for
-Linux/x86 on Paul's web site:
-
- www.dawa.demon.co.uk/xfree-gdb
-
-This web-site also contains the patches to gdb 4.18 so you may port it
-to other platforms.
-
-It loads the module symbols and supports all gdb features like
-breakpointing, disassembling and single stepping. It also shows the
-exact location of a signal 11. Paul has fixed the code so that all of
-this is working even if using modules compiled without -g. You can
-find his latest version on his web site.
-
-If no module aware gdb is available the following hints might help:
-
-1. Use remote login. This can be done thru a network connection or
- simply by connecting a serial console. This enables you to watch
- the Xservers output while running set breakpoints with gdb etc.
- Don't even try to run the Xserver from a system console. Whenever
- something happens gdb waits for input. However the Xserver has
- locked the system console including the keyboard, therefore you'll
- never be able to send any input to gdb. Even if your process
- doesn't crash or you haven't set any breakpoints a vt switch can be
- hazardous: When doing vt switching a signal is sent; unless you did
-
- gdb> handle SIGUSR1 nostop
-
- gdb waits for you to continue the program which cannot happen as
- you don't have access to gdb's console.
-
-2. You can compile any source file with debugging symbols to obtain
- more information about where an error occurred. Simply go to the
- directory which holds the corresponding object file and do:
-
- # rm <file>.o
- # xc/config/util/makeg.sh <file>.o
-
- After relinking the server or module gdb is able to obtain the
- necessary debugging information and will show the exact line in the
- source where the error ccurred. See also:
- xc/config/util/makeg.man.
-
-3. In some cases it might be useful to have the assembler output of a
- compiled source file. This can be obtained by doing:
-
- # make <file>.s
-
- or
-
- # xc/config/util/makeg.sh <file>.s
-
- Make will use exactly the same rules it uses for building *.o files.
-
-4. In some cases it might be useful to set breakpoints in modules. If
- no module aware gdb is available you should add a call to one of
- the three dummy breakpoint functions
-
- xf86Break1(), xf86Break2() and xf86Break3()
-
- to the source file and recompile the module. You now just have to
- set a breakpoint onto the appropriate dummy functions. These
- functions are located in the core part of the server and therefore
- will be available any time.
-
-5. Without module support gdb is not able to print the function where
- an error occurred in a module.
-
- If you get a line like:
-
- (gdb) bt
- #0 0x823b4f5 in ?? ()
- ....
-
- You may obtain the function the address belongs to by calling
- LoaderPrintSymbol():
-
- (gdb) call LoaderPrintSymbol(0x823b4f5)
-
- The symbol returned might not always be the name of the function
- which contains the address. In case of static functions the symbol
- is not known to the loader. However LoaderPrintSymbol() will print
- the nearest known function and the offset from its start. You may
- easily find the exact location of the address if you do:
-
- # objdump --disassemble <file>.o
-
- <file>.o is the name of the object file containing the symbol printed.
-
-6. Locating static symbols in modules is simpler if the module is a
- single object file instead of a library. Such a object file can
- easily be build from a library: # mkdir tmp # cd tmp; ar x
- module-path/<libname>.a # ld -r *.o -o module-path/<name>.o
-
- When calling LoaderPrintSymbol() the closes public symbol will be
- printed together with the offset from the symbol's address. If a
- static symbol comes before the first public symbol in a module The
- following trick may help:
-
- create a file 1-<name>.c in tmp/
- containing:
- void Dummy-<name>() {}
-
- Compile it:
-
- # gcc -c 1-<name>.c
-
- and do the link step above.
-
- This way Dummy-<name>() will be the first public function in the
- module. All addresses in static function can now be printed
- relatively to this address if no other public function comes before
- this static one.
-
-7. In some situations it is quite helpful to add debugging symbols to
- the binary. This can be done per object file. Simply remove the
- object file and do
-
- # makeg
-
- When looking for a bug in a module these debugging infos can be
- very helpful: Calling LoaderPrintSymbol() as described above will
- return a function and an offset giving the exact location of the
- address with respect to this function entry point. When
- disassembling an object file with debugging symbols: # objdump -d
- -l <file>.o one will receive a disassembled output containing line
- number information. Thus one can locate the exact line of code
- where the error occurred.
-
-8. To quickly trace the value of a variable declared in a module three
- dummy variables have been added to the core part:
-
- CARD32 xf86DummyVar1;
- CARD32 xf86DummyVar2;
- CARD32 xf86DummyVar3;
-
- The variable can be assigned to one of them. One can then use gdb
- to return the value of this variable:
-
- gdb> p /x xf86DummyVar1
-
-9. Sometimes it might be useful to check how the preprocessor replaced
- symbols. One can obtain a preprocessed version of the source file
- by doing:
-
- make <filename>.i
-
- This will generate a preprocessed source in <filename>.i.
-
-10. xfree() can catch if one tries to free a memory range twice. You
- will get the message:
-
- Xalloc error: range already freed in Xrealloc() :-(
-
- To find the location from which xfree() was called one can
- breakpoint on XfreeTrap(). The backtrace should show the origin of the
- call this call.
-
-11. To access mapped physical memory the following functions might be
- useful.
-
- These may be used to access physical memory that was mapped using
- the flags VIDMEM_FRAMEBUFFER or VIDMEM_MMIO32:
-
- CARD8 xf86PeekFb8(CARD8 *p);
- CARD16 xf86PeekFb16(CARD16 *p);
- CARD32 xf86PeekFb32(CARD32 *p);
- void xf86PokeFb8(CARD8 *p, CARD8 v);
- void xf86PokeFb16(CARD16 *p, CARD16 v);
- void xf86PokeFb32(CARD16 *p, CARD32 v);
-
- Physical memory which was mapped by setting VIDMEM_MMIO should be
- accessed using the following. Here the base address to which the
- memory is mapped and the offset are required separately.
-
- CARD8 xf86PeekMmio8(pointer Base, unsigned long Offset);
- CARD16 xf86PeekMmio16(pointer Base, unsigned long Offset);
- CARD32 xf86PeekMmio32(pointer Base, unsigned long Offset);
- void xf86PokeMmio8(pointer Base, unsigned long Offset, CARD8 v);
- void xf86PokeMmio16(pointer Base, unsigned long Offset, CARD16 v);
- void xf86PokeMmio32(pointer Base, unsigned long Offset, CARD32 v);
-
diff --git a/xorg-server/hw/xfree86/doc/devel/Makefile.am b/xorg-server/hw/xfree86/doc/devel/Makefile.am
index 6ca350c38..eb8b1cb29 100644
--- a/xorg-server/hw/xfree86/doc/devel/Makefile.am
+++ b/xorg-server/hw/xfree86/doc/devel/Makefile.am
@@ -2,7 +2,6 @@
# not installed on the system for end-users
EXTRA_DIST = \
- DebuggingHints \
Domain.note \
RAC.Notes \
Registry \
diff --git a/xorg-server/hw/xfree86/doc/devel/Makefile.in b/xorg-server/hw/xfree86/doc/devel/Makefile.in
index 7c169aff3..d5d45e4a9 100644
--- a/xorg-server/hw/xfree86/doc/devel/Makefile.in
+++ b/xorg-server/hw/xfree86/doc/devel/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.10.2 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -45,7 +45,6 @@ mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/include/do-not-use-config.h \
$(top_builddir)/include/xorg-server.h \
$(top_builddir)/include/dix-config.h \
- $(top_builddir)/include/xgl-config.h \
$(top_builddir)/include/xorg-config.h \
$(top_builddir)/include/xkb-config.h \
$(top_builddir)/include/xwin-config.h \
@@ -59,8 +58,9 @@ ADMIN_MAN_DIR = @ADMIN_MAN_DIR@
ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@
ALLOCA = @ALLOCA@
AMTAR = @AMTAR@
-APPDEFAULTDIR = @APPDEFAULTDIR@
APPLE_APPLICATIONS_DIR = @APPLE_APPLICATIONS_DIR@
+APPLE_APPLICATION_ID = @APPLE_APPLICATION_ID@
+APPLE_APPLICATION_NAME = @APPLE_APPLICATION_NAME@
APP_MAN_DIR = @APP_MAN_DIR@
APP_MAN_SUFFIX = @APP_MAN_SUFFIX@
AR = @AR@
@@ -81,10 +81,6 @@ CFLAGS = @CFLAGS@
COMPILEDDEFAULTFONTPATH = @COMPILEDDEFAULTFONTPATH@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DARWIN_LIBS = @DARWIN_LIBS@
DBUS_CFLAGS = @DBUS_CFLAGS@
@@ -106,6 +102,7 @@ DMXXIEXAMPLES_DEP_CFLAGS = @DMXXIEXAMPLES_DEP_CFLAGS@
DMXXIEXAMPLES_DEP_LIBS = @DMXXIEXAMPLES_DEP_LIBS@
DMXXMUEXAMPLES_DEP_CFLAGS = @DMXXMUEXAMPLES_DEP_CFLAGS@
DMXXMUEXAMPLES_DEP_LIBS = @DMXXMUEXAMPLES_DEP_LIBS@
+DOLT_BASH = @DOLT_BASH@
DRI2PROTO_CFLAGS = @DRI2PROTO_CFLAGS@
DRI2PROTO_LIBS = @DRI2PROTO_LIBS@
DRIPROTO_CFLAGS = @DRIPROTO_CFLAGS@
@@ -115,18 +112,15 @@ DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
DRI_DRIVER_PATH = @DRI_DRIVER_PATH@
DSYMUTIL = @DSYMUTIL@
DTRACE = @DTRACE@
-ECHO = @ECHO@
+DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
+FGREP = @FGREP@
FILE_MAN_DIR = @FILE_MAN_DIR@
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
-FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
-FREETYPE_LIBS = @FREETYPE_LIBS@
GLX_ARCH_DEFINES = @GLX_ARCH_DEFINES@
GLX_DEFINES = @GLX_DEFINES@
GL_CFLAGS = @GL_CFLAGS@
@@ -145,7 +139,7 @@ KDRIVE_LIBS = @KDRIVE_LIBS@
KDRIVE_LOCAL_LIBS = @KDRIVE_LOCAL_LIBS@
KDRIVE_PURE_INCS = @KDRIVE_PURE_INCS@
KDRIVE_PURE_LIBS = @KDRIVE_PURE_LIBS@
-LAUNCHD = @LAUNCHD@
+LD = @LD@
LDFLAGS = @LDFLAGS@
LD_EXPORT_SYMBOLS_FLAG = @LD_EXPORT_SYMBOLS_FLAG@
LEX = @LEX@
@@ -159,7 +153,10 @@ LIBTOOL = @LIBTOOL@
LIB_MAN_DIR = @LIB_MAN_DIR@
LIB_MAN_SUFFIX = @LIB_MAN_SUFFIX@
LINUXDOC = @LINUXDOC@
+LIPO = @LIPO@
LN_S = @LN_S@
+LTCOMPILE = @LTCOMPILE@
+LTCXXCOMPILE = @LTCXXCOMPILE@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
@@ -171,8 +168,7 @@ MESA_SOURCE = @MESA_SOURCE@
MISC_MAN_DIR = @MISC_MAN_DIR@
MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@
MKDIR_P = @MKDIR_P@
-MKFONTDIR = @MKFONTDIR@
-MKFONTSCALE = @MKFONTSCALE@
+NM = @NM@
NMEDIT = @NMEDIT@
OBJC = @OBJC@
OBJCCLD = @OBJCCLD@
@@ -181,8 +177,8 @@ OBJCFLAGS = @OBJCFLAGS@
OBJCLINK = @OBJCLINK@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
-OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
-OPENSSL_LIBS = @OPENSSL_LIBS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
@@ -215,7 +211,6 @@ VENDOR_NAME = @VENDOR_NAME@
VENDOR_NAME_SHORT = @VENDOR_NAME_SHORT@
VENDOR_RELEASE = @VENDOR_RELEASE@
VERSION = @VERSION@
-X11APP_ARCHS = @X11APP_ARCHS@
X11EXAMPLES_DEP_CFLAGS = @X11EXAMPLES_DEP_CFLAGS@
X11EXAMPLES_DEP_LIBS = @X11EXAMPLES_DEP_LIBS@
XDMCP_CFLAGS = @XDMCP_CFLAGS@
@@ -225,27 +220,12 @@ XDMXCONFIG_DEP_LIBS = @XDMXCONFIG_DEP_LIBS@
XDMX_CFLAGS = @XDMX_CFLAGS@
XDMX_LIBS = @XDMX_LIBS@
XDMX_SYS_LIBS = @XDMX_SYS_LIBS@
-XEGLMODULES_CFLAGS = @XEGLMODULES_CFLAGS@
-XEGL_LIBS = @XEGL_LIBS@
-XEGL_SYS_LIBS = @XEGL_SYS_LIBS@
XEPHYR_CFLAGS = @XEPHYR_CFLAGS@
-XEPHYR_DRI_LIBS = @XEPHYR_DRI_LIBS@
XEPHYR_INCS = @XEPHYR_INCS@
XEPHYR_LIBS = @XEPHYR_LIBS@
XF86CONFIGFILE = @XF86CONFIGFILE@
-XF86MISC_CFLAGS = @XF86MISC_CFLAGS@
-XF86MISC_LIBS = @XF86MISC_LIBS@
XF86VIDMODE_CFLAGS = @XF86VIDMODE_CFLAGS@
XF86VIDMODE_LIBS = @XF86VIDMODE_LIBS@
-XGLMODULES_CFLAGS = @XGLMODULES_CFLAGS@
-XGLMODULES_LIBS = @XGLMODULES_LIBS@
-XGLXMODULES_CFLAGS = @XGLXMODULES_CFLAGS@
-XGLXMODULES_LIBS = @XGLXMODULES_LIBS@
-XGLX_LIBS = @XGLX_LIBS@
-XGLX_SYS_LIBS = @XGLX_SYS_LIBS@
-XGL_LIBS = @XGL_LIBS@
-XGL_MODULE_PATH = @XGL_MODULE_PATH@
-XGL_SYS_LIBS = @XGL_SYS_LIBS@
XKB_BASE_DIRECTORY = @XKB_BASE_DIRECTORY@
XKB_BIN_DIRECTORY = @XKB_BIN_DIRECTORY@
XKB_COMPILED_DIR = @XKB_COMPILED_DIR@
@@ -256,10 +236,6 @@ XNESTMODULES_CFLAGS = @XNESTMODULES_CFLAGS@
XNESTMODULES_LIBS = @XNESTMODULES_LIBS@
XNEST_LIBS = @XNEST_LIBS@
XNEST_SYS_LIBS = @XNEST_SYS_LIBS@
-XORGCFG_DEP_CFLAGS = @XORGCFG_DEP_CFLAGS@
-XORGCFG_DEP_LIBS = @XORGCFG_DEP_LIBS@
-XORGCONFIG_DEP_CFLAGS = @XORGCONFIG_DEP_CFLAGS@
-XORGCONFIG_DEP_LIBS = @XORGCONFIG_DEP_LIBS@
XORG_CFLAGS = @XORG_CFLAGS@
XORG_INCS = @XORG_INCS@
XORG_LIBS = @XORG_LIBS@
@@ -268,13 +244,8 @@ XORG_MODULES_LIBS = @XORG_MODULES_LIBS@
XORG_OS = @XORG_OS@
XORG_OS_SUBDIR = @XORG_OS_SUBDIR@
XORG_SYS_LIBS = @XORG_SYS_LIBS@
-XPRINTMODULES_CFLAGS = @XPRINTMODULES_CFLAGS@
-XPRINTMODULES_LIBS = @XPRINTMODULES_LIBS@
-XPRINTPROTO_CFLAGS = @XPRINTPROTO_CFLAGS@
-XPRINTPROTO_LIBS = @XPRINTPROTO_LIBS@
-XPRINT_CFLAGS = @XPRINT_CFLAGS@
-XPRINT_LIBS = @XPRINT_LIBS@
-XPRINT_SYS_LIBS = @XPRINT_SYS_LIBS@
+XPBPROXY_CFLAGS = @XPBPROXY_CFLAGS@
+XPBPROXY_LIBS = @XPBPROXY_LIBS@
XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@
XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@
XSDL_INCS = @XSDL_INCS@
@@ -307,8 +278,7 @@ abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
@@ -328,7 +298,6 @@ driverdir = @driverdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
extdir = @extdir@
-ft_config = @ft_config@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -338,12 +307,12 @@ htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
-launchagentsdir = @launchagentsdir@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
logdir = @logdir@
+lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
moduledir = @moduledir@
@@ -361,10 +330,7 @@ target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-xglmoduledir = @xglmoduledir@
-xpconfigdir = @xpconfigdir@
EXTRA_DIST = \
- DebuggingHints \
Domain.note \
RAC.Notes \
Registry \
@@ -378,8 +344,8 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \