Git Product home page Git Product logo

extools's People

Contributors

1fbff5f83b23d39d38b1dfcb4cac8d9b avatar mchsl avatar monster860 avatar skull-test avatar skull132 avatar spacemaniac avatar willox avatar zewaka avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

extools's Issues

Reference tracking reports nonsensical values

I added reference tracking to /vg/station with vgstation-coders/vgstation13#26900 .

There are a few issues:

  • Accessing the "type" var of some of the references returned by extools sometimes causes a runtime error.
  • Some references are reportedly from variables that don't exist on the specified type, like here: [0x21024d6e] | /datum/delay_controller | speaker delay_controller has no var named speaker.

Should the debugger reset world.tick_usage on resume?

I'm trying to debug an issue on /vg/station and I find myself pausing the world in the middle of an a subsystem's Initialize().
When I'm done I hit "resume" and the game runs until CHECK_TICK runs, which notices the current world.tick_usage is several orders of magnitude higher than what's normal, and therefore sleep()s for an excessively long time to compensate. I inserted a debug statement inside stoplag() to prove this:

## TESTING: i: 1, tick_lag: 1, delta_calc: 2.29, cpu: 158, tick_usage: 229
## TESTING: i: 1, tick_lag: 1, delta_calc: 1.19, cpu: 119, tick_usage: 99
## TESTING: i: 1, tick_lag: 1, delta_calc: 1, cpu: 92, tick_usage: 99
## TESTING: i: 1, tick_lag: 1, delta_calc: 1360.29, cpu: 75, tick_usage: 136029

TL;DR:
Time spent looking at the debugger increases world.tick_usage, perhaps it would be better if it didn't.
I don't know if that's feasible at all.

Latest version is incompatible with 513.1539

Calling maptick_initialize seems to immediately crash Dream Daemon. Same probably goes for other calls but I didn't confirm that. I guess I could provide a crash log but it's not exactly hard to get the crash to happen.

EDIT: Title updated because I realized we were not actually using the release. Oops!

internal_tick_usage is too high and remains fixed at a certain number after round start

We have done a bunch of tests :
From this commit 2fbd8d9 : We verified so that the ITU dosen't work for 513 and 512. They remain fixed to high values like 60.7/66.7% for Eris or 20% for beestation.

CEV-Eris dreamseeker_2020-02-18_15-53-43

BeeStation : dreamseeker_2020-02-18_01-50-28

From your release https://github.com/MCHSL/extools/releases/tag/0.0.5 : For ITU, it works fine. We got less than 1% for beestation and CEV-Eris in 512 codebase.

I hope I have provided enough of information to help you in debugging. I can follow your instructions for the debugging.

Crash while viewing runtime details during debug

Environment details:
512.1488, 513.1506
tgstation (it's my pixel movement branch though so there are significant changes)

Whenever I get a runtime in debug if I spend some time to view the details of the runtime it ends up hard exiting the byond process.
Attempting to expand the vars of an object with no valid turf causes a crash (sometimes)

On a different runtime location I get the same symptoms but this shows up in the debug output:
[main] Error responding to "variables": channel is empty and sending half is closed

Error messages + debugger broken in 513.1542

Looks like Lummox broke it again already. At least it's not a crash this time.
When extools is initialized in 1542, it pops up error messages saying Failed to locate Suspend and Failed to locate CreateContext. This has no obvious effect (besides the popups themselves) on normal game sessions not using the debug tools, but it completely breaks the debugger. Additionally, when trying to start a debugged session, after those two error messages pop up there's also one that says Core init failed! and then the first two repeat two more times. The game launches and the debugger seems to attach, but doesn't do anything.
This is new to 1542, to be clear.

Failed to locate IsInContainer

BYOND Version: 513.1506+
DreamMaker Language Client Version: 0.1.6

Process:

  1. Run VSCode with SpacemanDMM extension.
  2. Go to the debug menu and run+debug.
  3. See the error below, and then a successful DreamSeeker launch
  4. Game runs normally, but without pausing on breakpoints/runtimes as expected.

alt text

TFFI crashes when using byondcrypt

Tested Versions: 512.1488, 513.1508
Extools Version: latest master(44a2afb) - 513 had a modified signature
OS: Windows 10, version 1909, build 18363.592
DLL being used: https://github.com/steamp0rt/byond-crypt
DM code: call_wait(BYONDCRYPT, "bcrypt_hash", data["password"])
DM branch: https://github.com/steamp0rt/HippieStation-1/tree/external-auth

(below stuff is for 512.1488 test)
VS exception:

Exception thrown at 0x00242F0A in dreamdaemon.exe: 0xC0000005: Access violation reading location 0x00000030.

Thrown at tffi.cpp, line 60.

VS Autos:


  | Name | Value | Type
-- | -- | -- | --
  | StartTiming | byondcore.dll!0x77b9bb90 (load symbols for additional information) | void(*)(SuspendedProc *)
  | internal_id | 0.000000000 | float
◢ | lk | {_Pmtx=0x79f7e7e8 {byond-extools.dll!std::mutex unsuspend_ready_mutex} {...} _Owns=true } | std::unique_lock<std::mutex>
  | ▶ _Pmtx | 0x79f7e7e8 {byond-extools.dll!std::mutex unsuspend_ready_mutex} {...} | std::mutex *
  | _Owns | true | bool
◢ | suspended_procs | { size=1 } | std::map<float,SuspendedProc *,std::less<float>,std::allocator<std::pair<float const ,SuspendedProc *>>>
  | ▶ [comparator] | less | std::_Compressed_pair<std::less<float>,std::_Compressed_pair<std::allocator<std::_Tree_node<std::pair<float const ,SuspendedProc *>,void *>>,std::_Tree_val<std::_Tree_simple_types<std::pair<float const ,SuspendedProc *>>>,1>,1>
  | ▶ [allocator] | allocator | std::_Compressed_pair<std::allocator<std::_Tree_node<std::pair<float const ,SuspendedProc *>,void *>>,std::_Tree_val<std::_Tree_simple_types<std::pair<float const ,SuspendedProc *>>>,1>
  | ▶ [0.000000000] | 0x1b62aa48 {unknown=0x1b62aa48 "÷," time_to_resume=0 } | std::pair<float const ,SuspendedProc *>
  | ▶ [Raw View] | {...} | std::map<float,SuspendedProc *,std::less<float>,std::allocator<std::pair<float const ,SuspendedProc *>>>
◢ | unsuspend_ready_cv | {_Cnd_storage={_Val=2045799156 _Pad=0x79f7e880 "ôjðy" } } | std::condition_variable
  | ▶ _Cnd_storage | {_Val=2045799156 _Pad=0x79f7e880 "ôjðy" } | std::_Align_type<int,40>
◢ | unsuspend_ready_mutex | {...} | std::mutex
  | ▶ std::_Mutex_base | {_Mtx_storage={_Val=2 _Pad=0x79f7e7e8 "\x2" } } | std::_Mutex_base

VS Locals:


  | Name | Value | Type
-- | -- | -- | --
◢ | a | { size=1 } | std::vector<char const *,std::allocator<char const *>>
  | [capacity] | 1 | int
  | ▶ [allocator] | allocator | std::_Compressed_pair<std::allocator<char const *>,std::_Vector_val<std::_Simple_types<char const *>>,1>
  | ▶ [0] | 0x235795fc "poopword" | const char *
  | ▶ [Raw View] | {_Mypair=allocator } | std::vector<char const *,std::allocator<char const *>>
◢ | args | { size=1 } | std::vector<std::string,std::allocator<std::string>>
  | [capacity] | 1 | int
  | ▶ [allocator] | allocator | std::_Compressed_pair<std::allocator<std::string>,std::_Vector_val<std::_Simple_types<std::string>>,1>
  | ▶ [0] | "poopword" | std::string
  | ▶ [Raw View] | {_Mypair=allocator } | std::vector<std::string,std::allocator<std::string>>
  | internal_id | 0.000000000 | float
◢ | lk | {_Pmtx=0x79f7e7e8 {byond-extools.dll!std::mutex unsuspend_ready_mutex} {...} _Owns=true } | std::unique_lock<std::mutex>
  | ▶ _Pmtx | 0x79f7e7e8 {byond-extools.dll!std::mutex unsuspend_ready_mutex} {...} | std::mutex *
  | _Owns | true | bool
  | n_args | 1 | int
  | proc | 0x7a1d1530 {byondcrypt.dll!_bcrypt_hash} | const char *(*)(int, const char * *)
  | promise_id | 156884 | int
◢ | res | 0x2357d760 "$2b$12$rYynn2eUZUJl1Po8GcSWyuzYfYfPTuRp6zIS5.8cDlhCyWCltrG1y" | const char *
  |   | 36 '$' | const char

VS Call Stack:

 	dreamdaemon.exe!00242f0a()	Unknown
 	dreamdaemon.exe![Frames below may be incorrect and/or missing, no symbols loaded for dreamdaemon.exe]	Unknown
 	[External Code]	
>	byond-extools.dll!ffi_thread(const char *(*)(int, const char * *) proc, int promise_id, int n_args, std::vector<std::string,std::allocator<std::string>> args) Line 60	C++
 	[External Code]	
 	byond-extools.dll!thread_start<unsigned int (__stdcall*)(void *),1>(void * const parameter) Line 97	C++
 	[External Code]	

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.