Jump to content
    1. Welcome to GTAForums!

    1. GTANet.com

    1. GTA Online

      1. Los Santos Drug Wars
      2. Updates
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Red Dead Online

      1. Blood Money
      2. Frontier Pursuits
      3. Find Lobbies & Outlaws
      4. Help & Support
    3. Crews

    1. Grand Theft Auto Series

      1. Bugs*
      2. St. Andrews Cathedral
    2. GTA VI

    3. GTA V

      1. Guides & Strategies
      2. Help & Support
    4. GTA IV

      1. The Lost and Damned
      2. The Ballad of Gay Tony
      3. Guides & Strategies
      4. Help & Support
    5. GTA San Andreas

      1. Classic GTA SA
      2. Guides & Strategies
      3. Help & Support
    6. GTA Vice City

      1. Classic GTA VC
      2. Guides & Strategies
      3. Help & Support
    7. GTA III

      1. Classic GTA III
      2. Guides & Strategies
      3. Help & Support
    8. Portable Games

      1. GTA Chinatown Wars
      2. GTA Vice City Stories
      3. GTA Liberty City Stories
    9. Top-Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    1. Red Dead Redemption 2

      1. PC
      2. Help & Support
    2. Red Dead Redemption

    1. GTA Mods

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Red Dead Mods

      1. Documentation
    3. Mod Showroom

      1. Scripts & Plugins
      2. Maps
      3. Total Conversions
      4. Vehicles
      5. Textures
      6. Characters
      7. Tools
      8. Other
      9. Workshop
    4. Featured Mods

      1. Design Your Own Mission
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Rockstar Games

    2. Rockstar Collectors

    1. Off-Topic

      1. General Chat
      2. Gaming
      3. Technology
      4. Movies & TV
      5. Music
      6. Sports
      7. Vehicles
    2. Expression

      1. Graphics / Visual Arts
      2. GFX Requests & Tutorials
      3. Writers' Discussion
      4. Debates & Discussion
    1. Announcements

    2. Forum Support

    3. Suggestions

Stack trace for C++ exceptions?


ikt
 Share

Recommended Posts

My Manual Transmission mod suffers from crashes for people with specific hardware and software (ScriptHookVDotNet and a Logitech G920) and I wanna know what's going wrong. Hasn't been very fruitful though, and I'm basically out of options and my search for finding what causes it just makes me more depressed.

Result:
  • A nice stack trace for non-C++ exceptions, like dereferencing a null pointer or going out of an arrays bounds

     

    TranslateSecurityAttributesGetHistoryFileDirectoryMetaDataGetDispenserRtlNormalizeStringRtlLookupFunctionEntryKiUserExceptionDispatcherstd::_Debug_message (17)std::array<bool,8>::operator[] (152)WheelDirectInput::IsButtonJustPressed (206)configHPattern (1321)update_wheelmenu (540)
  • Nothing for C++-style exceptions.[br]

     

    [03:43:14.669] Crash: Your program has crashed.<nothing>[03:43:14.670] CRASH: Init shutdown 
Or at least, it was when I did a `std::throw std::runtime_error("bla")`.

 

Now I want to be able to catch that too or at least know where it's thrown from, but by the gods I can't find a library or something that can do this. There's something mentioned about `_set_se_translator(...)` but I'm failing to find an implementation for this.

 

It's not like I'm throwing the real exception or error myself either, it's probably DirectInput. Basically I just want to know what causes my script to cock up and I really *really* don't want to be bothered with anything else, like clean exits. GTAV.exe can crash and burn.

Is there a way to just have print where the entire thing explodes and not worry about anything else?

 

Also it's got to not depend on the running system to have specific libs that I can't just redistribute in a zip but that's a second step.

 

The original StackOverflow answer where I got `Dump.h` from mentions something:

 

// if you use C++ exception handling: install a translator function// with set_se_translator(). In the context of that function (but *not*// afterwards), you can either do your stack dump, or save the CONTEXT// record as a local copy. Note that you must do the stack dump at the// earliest opportunity, to avoid the interesting stack-frames being gone// by the time you do the dump.
I have no idea how to use this information, but it sounds like it could magically work if set_se_translator() is used.
Link to comment
Share on other sites

You could try modifying exception handling in VStudio
Project properties -> C/C++ -> Code Generation
and trying /EHa

Look at THIS

I don't know, however, if using an arbitrary exception handling scheme in the thread of an injected dll (which ASIs are) can be done reliably, disregarding the EH scheme used by GTA5.exe

 

This is dangerous territory... you might end up being even more depressed :/

Link to comment
Share on other sites

You could try modifying exception handling in VStudio

Project properties -> C/C++ -> Code Generation

and trying /EHa

 

Look at THIS

 

I don't know, however, if using an arbitrary exception handling scheme in the thread of an injected dll (which ASIs are) can be done reliably, disregarding the EH scheme used by GTA5.exe

 

This is dangerous territory... you might end up being even more depressed :/

I've come a bit further. I already compiled with /EHa but that doesn't make the __catch()+dump thing point where the exception is thrown, for stuff like std::string.at(1);. Also got the two combined, but I'll see further on how it all ties in together.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • 1 User Currently Viewing
    0 members, 0 Anonymous, 1 Guest

×
×
  • Create New...

Important Information

By using GTAForums.com, you agree to our Terms of Use and Privacy Policy.