Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

C 5.2e - Blinker 7.0 - Abrupt Program Exit

Status
Not open for further replies.

tfcallahan1

Programmer
Mar 1, 2007
5
US
Hello,

I have a Clipper 5.2e application linked with Blinker 7.0.

It was previously linked with EXOSPACE but we have recently converted to Blinker.

A variety of 3rd party libraries are used but the Blinker docs say they are compatable.

After converting to Blinker, the program abruptly shuts down in various places with no error message. The program just exits.

It *might* be related to wait states but that is unclear.

Can anyone provide any insight or suggestions?

My link script is below.

Thanks in advance,

Tim

LINK SCRIPT
---------------------



# No incremental linking - need overlays in debug and production modes
BLINKER INCREMENTAL OFF

# Burn in Clipper environment variables
BLINKER EXECUTABLE CLIPPER F:160

# Set default cache sizes
BLINKER CACHE XMS 1024,50%
BLINKER CACHE EMS 256,50%

# Compression
# 1 = most compression, 9 = most speed
BLINKER EXECUTABLE COMPRESS 5

BLINKER EXECUTABLE EXTENDED
#BLINKER EXECUTABLE DUAL


# change procedure depth to 100 to increase the stack size - each 50 is approx 5120 bytes. Comix needs 7128 at least.
BLINKER PROCEDURE DEPTH 100 # Set a suitable stack depth

# Overlay pool - increase to reduce disk traffic, decrease to reduce memory footprint
BLINKER OVERLAY OPSIZE 50 # Set the overlay pool to 50kb


# Save the EXE even if unresolved externals
BLINKER EXECUTABLE NODELETE

# No blinking eyes during link
BLINKER MESSAGE NOBLINK

# no beep when done linking
NOBELL

# Uncomment below to generate link map file
MAP S, A, X

BEGINAREA

# Program object files.
FILE de_main
FILE jtcfg
FILE jtdict
FILE jtdicttm
FILE jtdictin
FILE jtstrux
FILE jtmisc
FILE jtmiscx
FILE jtpcemul
FILE jtpcl
FILE utilcomm
FILE de_rug
FILE de_tarea
FILE de_tyarn
FILE rp_ypcrd
FILE de_cont
FILE de_clink
FILE de_trans
FILE de_proj
FILE de_cash
FILE de_cust
FILE de_emp
FILE de_esch
FILE de_hours
FILE de_order
FILE de_sampl
FILE de_prod
FILE de_misc
FILE de_user
FILE de_yarn
FILE de_ship
FILE de_hrtot
FILE de_cmnt
FILE de_arbal
FILE de_bonus
FILE de_yrns
FILE de_comp
FILE de_cmlnk
FILE de_cmsn
FILE de_tax
FILE de_quote
FILE de_qline
FILE de_patt
FILE de_ac
FILE de_pasg
FILE de_pclk
FILE de_rcmp
FILE rp_match
FILE rp_label
FILE miscpick
FILE utils
FILE yarnutil
FILE exputil
FILE procutil
FILE ordutil
FILE de_inv
FILE de_invtx
FILE de_dsgn
FILE de_cimp
FILE de_valid
FILE de_cie
FILE rpbinsht
FILE rpflwup
FILE rpwalk
FILE rpactbud
FILE rpordack
FILE rpordinv
FILE rpordcrd
FILE rp_yscrd
FILE rp_jc_yc
FILE rpyrnfrt
FILE rpredye
FILE rpyrnord
FILE rpclrapr
FILE rptrans
FILE jtfind
FILE jttext
FILE rpordfrm
FILE rpquote
FILE rppcklst
FILE barcode
FILE rpshprel
FILE rp_wbcrd
FILE rpsamack
FILE rpyrnlbl
FILE rpveninv
FILE de_ylot
FILE de_ycst
FILE de_yspc
FILE de_yord
FILE de_cost
FILE de_bin
FILE yarnproc
FILE rpproj
FILE rparray

# OSLIB operating system library
LIB \jt_dev\cl5\oslib\lib\oslib.lib

# Nanforum Toolkit
LIB \jt_dev\cl5\nanfor\nanforx, \jt_dev\cl5\nanfor\nanfor

# Job Trac common library
LIB \jt_dev\lib\jtlib.lib

# Overlay utility library
ALLOCATE \jt_dev\cl5\overlay\overcl

# Pro HP printing library
LIB \jt_dev\cl5\prohp\prohp520.lib

# Mouse lib
lib \jt_dev\cl5\super\super

# LFN
lib \jt_dev\cl5\lfn\ll
lib \jt_dev\cl5\lfn\lfn
lib \jt_dev\cl5\nanfor\cpmi

# PSERROR error handling and reporting library
FILE \jt_dev\cl5\pserror\psx52.obj
LIB \jt_dev\cl5\pserror\psebasic, \jt_dev\cl5\pserror\compat

FILE \jt_dev\cl5\comix\cmx.obj
FILE \jt_dev\cl5\comix\cmxdbt.obj
LIB \jt_dev\cl5\comix\cmx.lib


ENDAREA

# Overlay
FILE \jt_dev\cl5\overlay\resident.obj

# This is the standard COMIX non-overlayed recommendations for speed
MODULE lsNew
MODULE item
MODULE _buffer
MODULE _codeBlo
MODULE cmxDos
MODULE _rdd
MODULE _ti
MODULE _orderBa
MODULE _cdx
MODULE CdxLock
MODULE CdxIter
MODULE _order
MODULE _cdxTag
MODULE _cdxPage
MODULE _cdxLeaf
MODULE list
MODULE cmxDbf1
MODULE cmxFpt
MODULE cmxLock
MODULE tiOpt
MODULE BinVal
MODULE cmxDbt52
MODULE oInsert
MODULE cdxNew
MODULE _rg
MODULE _table
MODULE cmxKeyNo # cmxKeyNo(), cmxKeyCount()
MODULE cmxKeyVa # cmxKeyVal()
MODULE cmxSkipU # cmxSkipUnique()
MODULE ordScope # Steady-state scope checking
MODULE cmxTable # Support routines for all cmx*() functions
MODULE lsExtend # Support routines for all cmx*() functions






# Blinker Library
SEARCH BLXCLP52


// MIN overlaying for CLIPPER STUFF
mod tbrowse0 # Uncomment these three lines
mod tbrowse1 # to speed up TBROWSE by forcing
mod linelen # it into the root.
mod gt # Do not overlay because of PSERROR
mod outstd # Do not overlay because of PSERROR
mod errsys1 # Do not overlay because of PSERROR
lib clipper
beginarea
lib extend
endarea
lib terminal


# Executable file
OUTPUT \jt_dev\exe\jt_all.exe








































 
I would start with a /b option in the compile so that a source code line number could be displayed when it breaks. Also, create a small version of this program and add modules until it dies.

Regards,
David.
 
Tim,

David has you on a good track. Start with a shell of the program and layer in a piece at a time, if it breaks right away, then the link should be the issue, otherwise you will find it as you layer in the rest of the functionality.

Also you made my hair hurt with that link script.

Jim C.
 
Tim, you say the application just exits with no error message? That seems rather unusual.

Is you DOS window still open and you have a c: prompt after the crash, or, is you DOS window closing? If you have to dos windows property set to close on exit you may be missing an error message as the window closes so fast you don't see it.

Lyndon

---People Remember about 10% of what you say ---They never forget how you made them feel. Covey
 
Thanks all for the input so far.

I have been doing testing along these lines.

Adding slowly to the program is tough to test as the crash occurs at random places at random times and it's hard to test it without having the bulk of the functionality in place.

We did have our DOS windows set to close on exit and so might be missing an error message and have changed that so hope to get more details soon which I will post.

One thing that *seemed* to lessen the frequency of the crashes was adding a LOWMEM 60 statement to the link script to reserve some low memory.

More info to come once it becomes available.

Thanks again,

Tim

p.s. JCreamerII - re the link script - my make program builds these - I try to *never* actually look at them! :)
 
Straight away I see things which shouldn't be there which lead me to believe that you're missing some key stuff:

BEGINAREA has to do with overlays. With most of the later Blinker versions you link an entire application into a protected mode module (which offers much more memory) which does away with the need for anything that has to do with overlays. This includes overlay cacheing.

Compressing the executable seems unnecessary since you're (probably) neither pressed to save disk space nor memory.

The number of directives (apart from - naturally - the FILE directives) is very limited to produce the executable file:

------------------------

FILE appmain
OUTPUT appmain

SEARCH BLXCLP52

LIBRARY CLIPPER, SIX3

FILE app1,app2,app3 ...

MAP

BLINKER INCREMENTAL OFF
BLINKER EXECUTABLE EXTENDED
BLINKER EXECUTABLE CLIPPER F100
BLINKER EXECUTABLE NODELETE CODEVIEW


------------------

SIX3 is the SuccessWare FoxPro driver.
I used to access the CTRL/D debugger in the main module.

Olof F
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top