This guide is intended for programmers who are familiar with the C programming language and the UNIX® system. The following list briefly describes each chapter.
``Using programming tools'' presents some of the tools available within the Development System. A sample program is created, using proper programming techniques, and analyzed with various tools. The rest of the chapter is devoted to debugging the sample program with the dbxtra debugger. The debugging session is documented, accompanied by a description of the commands used in the session. Also covered in this chapter are basic program structure and guidelines.
``C compilation system'' describes the UNIX operating system tools used to generate an executable program from C language source files, including the compiler and linker. It also discusses static and dynamic linking, and standard libraries and header files.
``C language compiler'' is a guide to the native SCO OpenServer C language compiler. It assumes that you have some experience with C, and are familiar with fundamental programming concepts.
``COFF link editor'' contains information about the Link Editor and the command language that can be used to modify the default behavior of ld(CP). The COFF link editor ld links relocatable object files to produce executable programs. Note that the cc command invokes the linker automatically, so the use of ld is optional.
``lint analyzer'', describes the use of lint to examine C language source files to detect bugs and obscure code constructions. lint issues error and warning messages produced by the C compiler. It also issues ``lint-specific'' warnings about potential bugs and portability problems.
``dbXtra and dbxtra'' describes the graphical debugger dbXtra and the character-based debugger dbxtra. dbxtra supports debugging of both C and C++ products in conjunction with SCO OpenServer C++ products. This debugger can follow the child or parent process when a fork is executed. dbxtra allows for the suspension of the parent debugger while debugging the child, and returning to the parent session after exiting the child. When using the X-based version of dbXtra, a programmer can simultaneously debug parent and child processes.
``sdb: symbolic debugger'' describes a debugger that is useful both for examining core images of aborted programs and for providing an environment in which execution of a program can be monitored and controlled. sdb provides a means for displaying variables to be accessed symbolically and viewed in the correct format.
``adb: absolute debugger'' describes a source level debugger for C and assembly language programs. adb provides a method for viewing non-ASCII data files with line mode commands. adb can single step through a program, allowing program patches to be applied to a program at the source level.
``C programmer's productivity tools'' teaches you how to use the C Programmer's Productivity Tools (CPPT) cscope, a browser, and lprof, a line profiling tool. Step-by-step instructions are provided through basic examples, so you can start using these tools right away. Additional examples demonstrate various options that allow you to make the best use of the tools.
``make'' describes how to use make to keep track of file-to-file relationships, the order of command executions, and general file maintenance. make automates the steps required to create executable programs and provides a mechanism for ensuring that programs are up-to-date. This tool is especially useful for large programming projects, because it ensures that all necessary compilations are performed, and minimizes the time wasted by unnecessary compilation. It can also be used to advantage with smaller programming tasks.
``Source code control system (SCCS)'' explains how to control and maintain all versions of a project's source files using the SCCS commands. The Source Code Control System (SCCS) is an integral part of the Development System. The SCCS commands allow you to maintain a history of the changes to your source files. SCCS keeps all previous versions of your source files so that you can trace changes, or even regenerate earlier versions as needed.
``lex'' explains how to create lexical analyzers using the program generator lex. Lexical analyzers in programs pick patterns out of complex input and convert these patterns into meaningful values or tokens. The lex program generates lexical analyzers, written in C, from given specification files.
``yacc'' explains how to create parsers using the program generator, yacc. The yacc program generates parsers, written in C, from given specification files. You can use lex and yacc together to make complete programs.
``Shared libraries'' describes what a shared library is and how to use one to build a.out files. It offers suggestions about when to use a shared library, and how to determine whether an a.out file uses a shared library. It also explains how to use mkshlib(CP), how to write C code for shared libraries, and how to use the tool chkshlib(CP) to check the compatability of versions of shared libraries.
``ANSI implementation-defined behavior'' provides the specification of the implementation-defined characteristics and extensions required by the standard as called out in ANSI Document Number X3J11/90-013.
``C compiler diagnostics'' contains the text and explanation for all the warning and error messages produced by the compiler.