View Single Post
Author Message
client21
Senior Member
Join Date: Apr 2013
Old 12-07-2017 , 13:42   'try' 'cath' not work
Reply With Quote #1

Debian 7 (g++)
When i compile for 'css' or 'csgo' engine - it work, i see this:
1
2
3
4
5
6

But when i compile for 'original' i see this:
1
2
3

Code:

PHP Code:
bool MyClass::SDK_OnLoad(char *errorsize_t maxlengthbool late)
{
    try { throw(
1); }
    catch (...)
    {
        
g_pSM->LogError(myself"1");
        try { throw(
1); }
        catch (...)
        {
            
g_pSM->LogError(myself"2");
            try { throw(
1); }
            catch (...)
            {
                
g_pSM->LogError(myself"3");
            }
            
g_pSM->LogError(myself"4");
        }
        
g_pSM->LogError(myself"5");
    }
    
g_pSM->LogError(myself"6");
    return 
true;

Makefile:

PHP Code:
# (C)2004-2010 SourceMod Development Team
# Makefile written by David "BAILOPAN" Anderson

########################################### sdkcss
### EDIT THESE PATHS FOR YOUR OWN SETUP ### hl2sdk-csgo
########################################### sdk2014css+csgo  source-sdk-2013
# engine: "csgo, left4dead2, left4dead, css, orangeboxvalve, orangebox, or original"
# make ENGINE=css -f Makefile

#####################################
### EDIT BELOW FOR OTHER PROJECTS ###
#####################################

PROJECT proj
OBJECTS 
main.cpp
USEMETA 
false

#
SMSDK = /root/ext/sdk_alliedmodders/sourcemod
MMSOURCE19 
= /root/ext/sdk_alliedmodders/mmsource

HL2SDK_CSGO 
= /root/ext/sdk_alliedmodders/hl2sdk-csgo
HL2SDK_CSS 
= /root/ext/sdk_alliedmodders/hl2sdk-css
HL2SDK_ORIG 
= /root/ext/sdk_alliedmodders/hl2sdk-episode1
#

#HL2SDK_OB = ../../../hl2sdk-ob
#HL2SDK_OB_VALVE = ../../../hl2sdk-ob-valve
#HL2SDK_L4D = ../../../hl2sdk-l4d
#HL2SDK_L4D2 = ../../../hl2sdk-l4d2

##############################################
### CONFIGURE ANY OTHER FLAGS/OPTIONS HERE ###
##############################################

C_OPT_FLAGS = -DNDEBUG -O3 -funroll-loops -pipe -fno-strict-aliasing
C_DEBUG_FLAGS 
= -D_DEBUG -DDEBUG --ggdb3
C_GCC4_FLAGS 
= -fvisibility=hidden
CPP_GCC4_FLAGS 
= -fvisibility-inlines-hidden
# g++ gcc
CPP g++
CPP_OSX clang

##########################
### SDK CONFIGURATIONS ###
##########################

override ENGSET false

# Check for valid list of engines
ifneq (,$(filter original orangebox orangeboxvalve css left4dead left4dead2 csgo,$(ENGINE)))
    
override ENGSET true
endif

ifeq "$(ENGINE)" "original"
    
HL2SDK = $(HL2SDK_ORIG)
    
CFLAGS += -DSOURCE_ENGINE=1
endif
ifeq "$(ENGINE)" "orangebox"
    
HL2SDK = $(HL2SDK_OB)
    
CFLAGS += -DSOURCE_ENGINE=3
endif
ifeq "$(ENGINE)" "css"
    
HL2SDK = $(HL2SDK_CSS)
    
CFLAGS += -DSOURCE_ENGINE=6
endif
ifeq "$(ENGINE)" "orangeboxvalve"
    
HL2SDK = $(HL2SDK_OB_VALVE)
    
CFLAGS += -DSOURCE_ENGINE=7
endif
ifeq "$(ENGINE)" "left4dead"
    
HL2SDK = $(HL2SDK_L4D)
    
CFLAGS += -DSOURCE_ENGINE=8
endif
ifeq "$(ENGINE)" "left4dead2"
    
HL2SDK = $(HL2SDK_L4D2)
    
CFLAGS += -DSOURCE_ENGINE=9
endif
ifeq "$(ENGINE)" "csgo"
    
HL2SDK = $(HL2SDK_CSGO)
    
CFLAGS += -DSOURCE_ENGINE=12
endif

HL2PUB = $(HL2SDK)/public

ifeq "$(ENGINE)" "original"
    
INCLUDE += -I$(HL2SDK)/public/dlls
    METAMOD 
= $(MMSOURCE19)/core-legacy
else
    INCLUDE += -
I$(HL2SDK)/public/game/server
    METAMOD 
= $(MMSOURCE19)/core
endif

OS := $(shell uname -s)

ifeq "$(OS)" "Darwin"
    
LIB_EXT dylib
    HL2LIB 
= $(HL2SDK)/lib/mac
else
    
LIB_EXT so
    ifeq 
"$(ENGINE)" "original"
        
HL2LIB = $(HL2SDK)/lib/linux
    
else
        
HL2LIB = $(HL2SDK)/lib/linux
    
endif
endif

# if ENGINE is original or OB
ifneq (,$(filter original orangebox,$(ENGINE)))
    
LIB_SUFFIX _i486.$(LIB_EXT)
else
    
LIB_PREFIX lib
    LIB_SUFFIX 
= .$(LIB_EXT)
endif

ifneq (,$(filter css orangeboxvalve left4dead2,$(ENGINE)))
    
LIB_SUFFIX _srv.$(LIB_EXT)
endif


INCLUDE += -
I. -I.. -I$(SMSDK) -I$(SMSDK)/sourcepawn -I$(SMSDK)/public -I$(SMSDK)/public/sourcepawn


ifeq 
"$(USEMETA)" "true"
    
LINK_HL2 = $(HL2LIB)/tier1_i486.$(LIB_PREFIX)vstdlib$(LIB_SUFFIX) $(LIB_PREFIX)tier0$(LIB_SUFFIX)
    
ifeq "$(ENGINE)" "csgo"
        
LINK_HL2 += $(HL2LIB)/interfaces_i486.a
    
endif

    
LINK += $(LINK_HL2)

    INCLUDE += -
I$(HL2PUB) -I$(HL2PUB)/engine -I$(HL2PUB)/tier0 -I$(HL2PUB)/tier1 -I$(METAMOD) \
        -
I$(METAMOD)/sourcehook 
    CFLAGS 
+= -DSE_EPISODEONE=-DSE_DARKMESSIAH=-DSE_ORANGEBOX=-DSE_BLOODYGOODTIME=-DSE_EYE=\
        -
DSE_CSS=-DSE_ORANGEBOXVALVE=-DSE_LEFT4DEAD=-DSE_LEFT4DEAD2=-DSE_ALIENSWARM=10 \
        -
DSE_PORTAL2=11 -DSE_CSGO=12
endif

LINK += -m32 -lm -ldl

#  -Werror
CFLAGS += -DPOSIX -Dstricmp=strcasecmp -D_stricmp=strcasecmp -D_strnicmp=strncasecmp -Dstrnicmp=strncasecmp \
    -
D_snprintf=snprintf -D_vsnprintf=vsnprintf -D_alloca=alloca -Dstrcmpi=strcasecmp -DCOMPILER_GCC -Wall \
    -
Wno-overloaded-virtual -Wno-switch -Wno-unused -msse -DSOURCEMOD_BUILD -DHAVE_STDINT_H -m32 -fexceptions

# -fno-exceptions
CPPFLAGS += -Wno-non-virtual-dtor -fno-rtti -fexceptions -std=c++11

################################################
### DO NOT EDIT BELOW HERE FOR MOST PROJECTS ###
################################################

BINARY = $(PROJECT).ext.$(LIB_EXT)

ifeq "$(DEBUG)" "true"
    
BIN_DIR Debug
    CFLAGS 
+= $(C_DEBUG_FLAGS)
else
    
BIN_DIR Release
    CFLAGS 
+= $(C_OPT_FLAGS)
endif

ifeq "$(USEMETA)" "true"
    
BIN_DIR := $(BIN_DIR).$(ENGINE)
endif

ifeq "$(OS)" "Darwin"
    
CPP = $(CPP_OSX)
    
LIB_EXT dylib
    CFLAGS 
+= -DOSX -D_OSX
    LINK 
+= -dynamiclib -lstdc++ -mmacosx-version-min=10.5
else
    
LIB_EXT so
    CFLAGS 
+= -D_LINUX
    LINK 
+= -shared
endif

IS_CLANG := $(shell $(CPP) --version head -grep clang > /dev/null && echo "1" || echo "0")

ifeq "$(IS_CLANG)" "1"
    
CPP_MAJOR := $(shell $(CPP) --version grep clang sed "s/.*version \([0-9]\)*\.[0-9]*.*/\1/")
    
CPP_MINOR := $(shell $(CPP) --version grep clang sed "s/.*version [0-9]*\.\([0-9]\)*.*/\1/")
else
    
CPP_MAJOR := $(shell $(CPP) -dumpversion >&cut -b1)
    
CPP_MINOR := $(shell $(CPP) -dumpversion >&cut -b3)
endif

# If not clang
ifeq "$(IS_CLANG)" "0"
    
CFLAGS += -mfpmath=sse
endif

# Clang || GCC >= 4
ifeq "$(shell expr $(IS_CLANG) \| $(CPP_MAJOR) \>= 4)" "1"
    
CFLAGS += $(C_GCC4_FLAGS)
    
CPPFLAGS += $(CPP_GCC4_FLAGS)
endif

# Clang >= 3 || GCC >= 4.7
ifeq "$(shell expr $(IS_CLANG) \& $(CPP_MAJOR) \>= 3 \| $(CPP_MAJOR) \>= 4 \& $(CPP_MINOR) \>= 7)" "1"
    
CFLAGS += -Wno-delete-non-virtual-dtor
endif

# OS is Linux and not using clang
ifeq "$(shell expr $(OS) \= Linux \& $(IS_CLANG) \= 0)" "1"
    
LINK += -static-libgcc
endif

OBJ_BIN := $(OBJECTS:%.cpp=$(BIN_DIR)/%.o)

# This will break if we include other Makefiles, but is fine for now. It allows
#  us to make a copy of this file that uses altered paths (ie. Makefile.mine)
#  or other changes without mucking up the original.
MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))

$(
BIN_DIR)/%.o: %.cpp
    
$(CPP) $(INCLUDE) $(CFLAGS) $(CPPFLAGS) -$@ -$<

allcheck
    mkdir 
-$(BIN_DIR)/sdk
    mkdir 
-$(BIN_DIR)/CDetour
    mkdir 
-$(BIN_DIR)/asm
    
if [ "$(USEMETA)" "true" ]; then \
        
ln -sf $(HL2LIB)/$(LIB_PREFIX)vstdlib$(LIB_SUFFIX); \
        
ln -sf $(HL2LIB)/$(LIB_PREFIX)tier0$(LIB_SUFFIX); \
    
fi
    
$(MAKE) -$(MAKEFILE_NAMEextension

check
:
    if [ 
"$(USEMETA)" "true" ] && [ "$(ENGSET)" "false" ]; then \
        echo 
"You must supply one of the following values for ENGINE:"; \
        echo 
"csgo, left4dead2, left4dead, css, orangeboxvalve, orangebox, or original"; \
        exit 
1; \
    
fi

extension
check $(OBJ_BIN)
    $(
CPP) $(INCLUDE) $(OBJ_BIN) $(LINK) -$(BIN_DIR)/$(BINARY)

debug:
    $(
MAKE) -$(MAKEFILE_NAMEall DEBUG=true

default: all

clean
check
    rm 
-rf $(BIN_DIR)/*.o
    rm -rf $(BIN_DIR)/sdk/*.o
    rm -rf $(BIN_DIR)/CDetour/*.o
    rm -rf $(BIN_DIR)/asm/*.o
    rm -rf $(BIN_DIR)/$(BINARY) 

Last edited by client21; 12-07-2017 at 13:46.
client21 is offline