VE Lua Documentation

Press F to search!

tracesimple

Definition


-- @/lua/common/libs/StackTracePlus/StackTracePlus.lua:325


function _M.stacktraceSimple(thread, message, level, level_limit, dump_locals)
  if type(thread) ~= "thread" then
    -- shift parameters left
    thread, message, level, level_limit, dump_locals = nil, thread, message, level, level_limit
  end

  thread = thread or coroutine.running()

  level = level or 1
  if dump_locals == nil then
    dump_locals = true
  end

  local dumper = Dumper.new(thread)

  local original_error

  if type(message) == "table" then
    dumper:add("an error object {\n")
    local first = true
    for k,v in pairs(message) do
      if first then
        dumper:add("  ")
        first = false
      else
        dumper:add(",\n  ")
      end
      dumper:add(safe_tostring(k))
      dumper:add(": ")
      dumper:add(safe_tostring(v))
    end
    dumper:add("\n}")
    original_error = dumper:concat_lines()
  elseif type(message) == "string" then
    dumper:add(message)
    original_error = message
  end

  if level == nil or level_limit == nil then
    dumper:add('Simple Stack Trace:')
  end
  --print(error_message)

  local level_to_show = level
  if dumper.dumping_same_thread then level = level + 1 end

  local info = dumper.getinfo(level, "nSlf")
  while info do
    if info.what == "main" then
      if string_sub(info.source, 1, 1) == "@" then
        dumper:add_f("\n(%d) main chunk of file '%s' at line %d", level_to_show, string_sub(info.source, 2), info.currentline)
      else
        dumper:add_f("\n(%d) %s:%d", level_to_show, info.source, info.currentline)
      end
    elseif info.what == "C" then
      --print(info.namewhat, info.name)
      --for k,v in pairs(info) do print(k,v, type(v)) end
      local function_name = m_user_known_functions[info.func] or m_known_functions[info.func] or info.name or tostring(info.func)
      dumper:add_f("\n(%d) %s C function '%s'", level_to_show, info.namewhat, function_name)
      --dumper:add_f("%s%s = C %s\n", prefix, name, (m_known_functions[value] and ("function: " .. m_known_functions[value]) or tostring(value)))
    elseif info.what == "tail" then
      --print("tail")
      --for k,v in pairs(info) do print(k,v, type(v)) end--print(info.namewhat, info.name)
      dumper:add_f("\n(%d) tail call", level_to_show)
    elseif info.what == "Lua" then
      local source = info.source
      local function_name = m_user_known_functions[info.func] or m_known_functions[info.func] or info.name
      if source:sub(2, 7) == "string" then
        source = source:sub(9)
      end
      local was_guessed = false
      if not function_name or function_name == "?" then
        --for k,v in pairs(info) do print(k,v, type(v)) end
        function_name = GuessFunctionName(info)
        was_guessed = true
      end
      -- test if we have a file name
      local function_type = (info.namewhat == "") and "function" or info.namewhat
      if info.source and info.source:sub(1, 1) == "@" then
        dumper:add_f("\n(%d) %s:%d %s (%s)", level_to_show, info.source:sub(2), info.currentline, function_name, function_type)
      elseif info.source and info.source:sub(1,1) == '#' then
        dumper:add_f("\n(%d) Lua %s '%s' at template '%s:%d'%s", level_to_show, function_type, function_name, info.source:sub(2), info.currentline, was_guessed and " (best guess)" or "")
      else
        dumper:add_f("\n(%d) %s:%d: %s", level_to_show, source:sub(2, -3), info.currentline, function_name)
      end
    else
      dumper:add_f("\n(%d) unknown frame %s", level_to_show, info.what)
    end

    level = level + 1
    level_to_show = level_to_show + 1
    if level_limit ~= nil and level > level_limit then
      break
    end
    info = dumper.getinfo(level, "nSlf")
  end

  return dumper:concat_lines(), original_error
end

Callers

@/lua/ge/extensions/core/vehicleBridge.lua
  --if params[1] == 'setFreeze' then
    --print(debug.tracesimple())
  --end
@/lua/common/utils.lua
    log("E", "jsonWriteFile", "Provided objType is not a table but "..dumps(objType)..", unable to write to: "..dumps(filename))
    print(debug.tracesimple())
    return false
    log("E", "jsonWriteFile", "Unable to open file for writing: "..dumps(filename))
    print(debug.tracesimple())
  end
@/lua/ge/ge_utils.lua
  log("E", "", "The 'setCEFFocus()' function is deprecated and doesn't need to be called by the following code:")
  print(debug.tracesimple())
end
@/lua/ge/extensions/core/settings/settings.lua
    --log("W", "", "This call to save() settings is being ignored, because it is flagged as a recursive call via 'M.loadingSettingsInProgress'. This should not happen, please review callstack below:")
    --print(debug.tracesimple())
    return
    --log("W", "", "This call to save() settings is being ignored, because it is flagged as a recursive call via 'alreadySaving'. This should not happen, please review callstack below:")
    --print(debug.tracesimple())
    return
    --log("W", "", "This call from setState to save() settings is not even attempted, because it is flagged via 'M.loadingSettingsInProgress' as a recursive call. This should not happen, please review callstack below:")
    --print(debug.tracesimple())
  end
    --log("W", "", "This call to setValue() settings is being ignored, because it is flagged as a recursive call via 'M.settingInProgress["..dumps(key).."]'. This should not happen, please review callstack below:")
    --print(debug.tracesimple())
    return
@/lua/ge/client/init.lua
  -- log('I','client', "initBaseClient start...")
  -- dumps(debug.tracesimple())
@/lua/ge/extensions/career/modules/playerAttributes.lua
      label = "Unknown Reason",
      origin = debug.tracesimple()
    }
@/lua/vehicle/extensions/core/quickAccess.lua
  end
  args.origin = debug.tracesimple()
  return true
@/lua/ge/extensions/gameplay/missions/progress.lua
  end
  local entry = { date = os.time(), humanDate = os.date("!%Y-%m-%dT%TZ"), data = data or {}, source = debug.tracesimple() }
  table.insert(file, entry)
@/lua/ge/extensions/career/branches.lua
      log('W', '', 'Using legacy branch path: ' .. pathId .. ' -> ' .. M.oldAttributeNamesToNewNames[pathId])
      log('D', '', 'Called from:\n' .. debug.tracesimple())
    end
@/lua/ge/extensions/gameplay/missions/missionManager.lua
  --dump("attemptAbandonMissionWithFade")
  --print(debug.tracesimple())
  if not mission then
  --dump("stop")
  --print(debug.tracesimple())
  data = data or {}
@/lua/ge/extensions/flowgraph/graph.lua
      log("E", "", "Duplicate ID error! Graph")
      print(debug.tracesimple())
    end
  --dumpz(node, 1)
  --print(debug.tracesimple())
  --ui_flowgraph_editor.DeleteNode(node.id)
@/lua/ge/extensions/flowgraph/manager.lua
        log('E', '', 'Removing Graph.'..key)
        print(debug.tracesimple())
      end
  if not contained then
    log('E', logTag, 'Tried to remove graph when graphs was actually not in manager! ' .. debug.tracesimple())
    return
    if not status then
      log('E', logTag, 'error while loading node ' .. tostring(requireFilename) .. ' : ' .. tostring(node) .. '. ' .. debug.tracesimple())
    else
@/lua/ge/extensions/gameplay/sites/sites.lua
    --log("W","","Finalized too often: "..self._finalized)
    --print(debug.tracesimple())
  end
@/lua/vehicle/ve_utils.lua
  if type(header) ~= "table" then
    log("W", "tableFromHeaderTable", "*** Invalid table header: " .. dumpsz(entry, 2) .. " - " .. debug.tracesimple())
@/lua/ge/extensions/career/modules/delivery/generator.lua
    end
    print(debug.tracesimple())
  end
@/lua/ge/extensions/gameplay/missions/missionTypes/flowMission.lua
    log("E","","called processCommonSettings during mission active! This shouldnt happen.")
    print(debug.tracesimple())
  end
@/lua/ge/extensions/util/stepHandler.lua
local getStepOrigin = function()
  local origin = split(debug.tracesimple(), "\n")
  return origin[4]
@/lua/vehicle/extensions/outgauge.lua
log("E", "", "Something tried to use the deprecated 'lua/vehicle/extensions/outgauge.lua' file. If you are the programmer/modder responsible for that attempt, please check https://go.beamng.com/protocols")
print(debug.tracesimple())
return {}
@/lua/ge/extensions/core/input/bindings.lua
  log("E", "", "bindings.menuActive has been deprecated in favour of the 'menuActionMapEnabled' boolean flag on javascript side (see main.js for examples). The default behaviour is probably working correctly already, in which case you can simply delete the call to menuActive. Stacktrace provided below so you can update the relevant code:")
  print(debug.tracesimple())
  M.setMenuActionMapEnabled(enabled)
@/lua/common/extensions.lua

    --print("Unloading "..vmType.." extension: "..dumps(extName, extPath).."\n"..debug.tracesimple())
    --print("Unloading "..vmType.." extension: "..dumps(extName, extPath))

  --print("Loading "..vmType.." extension: "..dumps(extName, extPath).."\n"..debug.tracesimple())
  --print("Loading "..vmType.." extension: "..dumps(extName, extPath))
@/lua/ge/extensions/editor/util/editorElementHelper.lua
    log("W","",".prefab should not be used for extension anymore. please upgrade to '.prefab.json'")
    --print(debug.tracesimple())
  end
    log("W","",".prefab should not be used for extension anymore. please upgrade to '.prefab.json'")
    --print(debug.tracesimple())
  end
@/lua/ge/extensions/flowgraph/states.lua
  --print("Clearing states and killing ext proxies")
  --print(debug.tracesimple())
  if self.resolveExtProxy then
@/lua/ge/extensions/flowgraph/pin.lua
      log("E", "", "Duplicate ID error! Pin")
      print(debug.tracesimple())
    end
          print("Changin Pin value to " .. tostring(value))
          print(debug.tracesimple())
        end
@/lua/vehicle/motionSim.lua
log("E", "", "Something tried to use the deprecated 'lua/vehicle/motionSim.lua' file. If you are the programmer/modder responsible for that attempt, please check https://go.beamng.com/protocols")
print(debug.tracesimple())
return {}
@/lua/ge/extensions/flowgraph/basenode.lua
    print("Tried to set value of empty pin! Not allowed.")
    print(debug.tracesimple())
  end
      log("E",logTag,"Duplicate ID error! Node")
      print(debug.tracesimple())
    end
    __index = function(self, key) return emptyPin end,
    __newindex = function(self, key, value) log('E', self.mgr.logTag, 'cannot write to input pin: ' .. tostring(key)) print(debug.tracesimple()) end,
  })
  if self.nodeType == 'vehicle/special/customVlua' then
   -- print(debug.tracesimple())
   --dump(nodeData)
@/lua/ge/extensions/editor/util/transformUtil.lua
  --dump(editor.editMode and editor.editMode.displayName)
  --print(debug.tracesimple())
  if self:correctEditMode() then
@/lua/ge/extensions/core/vehicleTriggers.lua
local function onActionEvent(actionNumber, inputValue)
  --print(debug.tracesimple())
  -- dump{'triggers.onActionEvent', actionNumber, inputValue}
@/lua/ge/main.lua
    log("W", b, "The long log message above has been triggered by:")
    print(debug.tracesimple())
  end
  log('E','','loadGameModeModules(xxx) will be deprecated soon. Instead, replace with these calls:\nunloadAutoExtensions()\nloadPresetExtensions()\nextensions.load(xxx) -- you can omit this line if no parameter was passed')
  print(debug.tracesimple())
  log('E','','== OUTDATED MOD CODE ==')
  log('E','',"registerCoreModule("..dumps(extensionName).." will be deprecated soon. Instead, replace with: setExtensionUnloadMode(M, \"manual\")")
  print(debug.tracesimple())
  log('E','','== OUTDATED MOD CODE ==')
@/lua/ge/extensions/core/flowgraphManager.lua
      if not status then
        log('E', '', 'error while loading node ' .. tostring(requireFilename) .. ' : ' .. tostring(node) .. '. ' .. debug.tracesimple())
      else
@/lua/ge/extensions/core/gamestate.lua
  --dump(loadingScreenRequests)
  --print(debug.tracesimple())
  log('D', logTag, 'exiting : ' .. tagName)
@/lua/vehicle/extensions/outsim.lua
log("E", "", "Something tried to use the deprecated 'lua/vehicle/extensions/outsim.lua' file. If you are the programmer/modder responsible for that attempt, please check https://go.beamng.com/protocols")
print(debug.tracesimple())
return {}
@/lua/ge/extensions/flowgraph/link.lua
      log("E","","Duplicate ID error! Link")
      print(debug.tracesimple())
    end
      log("E","","Duplicate ID error! Link")
      print(debug.tracesimple())
    end
@/lua/common/jbeamWriter.lua
    log("E", "jsonWriteFile", "Unable to open file for writing: "..dumps(filename))
    print(debug.tracesimple())
  end
@/lua/common/luaProfiler.lua
    log("E", "", "luaProfiler: Missing start")
    print(debug.tracesimple())
    return
@/lua/ge/spawn.lua
    log("W", logTag, "Using Old TS Spawning Code to spawn vehicle!: " .. dumps(vehicleModel))
    print(debug.tracesimple())
    spawnPlayerOld()
@/lua/ge/extensions/gameplay/markerInteraction.lua
log("E","","Deprecated startMissionById")
  print(debug.tracesimple())
end
  log("E","","Deprecated stopMissionById")
  print(debug.tracesimple())
end
  log("E","","Deprecated changeUserSettings")
  print(debug.tracesimple())
end