Sodium: Türkiye'nin Programlama Dili
  • Sodium Home Page
  • Getting Started
    • Examples
      • Hello World Example
      • Datalist & Select Element Usage
  • Installation & Configuration
  • Frequently Asked Questions
  • How to
    • How to: use Recordset variable and to_json function for populating a tree node
    • How to: get selected tree node id
    • How to: create master detail relationship between data blocks
    • How to: use data list element for populating select elements
    • How to: define a lookup element for a select element
    • How to: use database sequence in data block element
  • Contributers
  • Roadmap
  • About Me
  • Version History
    • Change Log
    • Things To Do
    • Known Issues
  • LANGUAGE REFERENCE
    • Program Structure
      • Form File
      • Code Behind File
      • Controller File
    • Built-in Functions
      • Sodium Built-in Functions
        • Database Related Functions
          • commit
          • rollback
          • delete
          • create_postgresql_connection
          • create_oracle_connection
          • create_mysql_connection
          • get_database_type
          • get_database_name
          • run_sql_file
          • set_active_database_connection
        • REDIS Functions
          • create_redis_connection
          • close_redis_connection
          • (redis-variable-name).set
          • (redis-variable-name).get
          • (redis-variable-name).del
          • (redis-variable-name).ping
          • (redis-variable-name).incr
          • (redis-variable-name).incrBy
          • (redis-variable-name).decr
          • (redis-variable-name).decrBy
          • (redis-variable-name).strlen
          • (redis-variable-name).append
        • Other Functions
          • disable_column
          • enable_column
          • hide_block
          • hide_column
          • message
          • populate_datalist
          • prompt
          • refresh_block
          • show_block
          • show_column
          • show_page
          • populate_tree
          • to_json
          • refresh_tree_node
          • set_datablock_property
      • Built-in String Functions & Operands
        • instr
        • strlen
        • Concatanation Operator
        • replace
        • substr
        • The "sizeof" Operator
        • Like & Not Like Operators
      • File IO functions
      • Date/time Functions
    • Built-in Triggers
      • "item_modified" trigger
      • "connection_not_found" trigger
      • "page.access" trigger
      • "page_load" trigger
      • "post_query" trigger
      • "row_selected" trigger
      • "button_item_clicked" trigger
      • "pre_insert" Trigger
      • "pre_delete" Trigger
      • "pre_update" Trigger
      • "post_insert" Trigger
      • "post_delete" Trigger
      • "post_update" Trigger
      • "tree_node_expanded" Trigger
      • "tree_node_selected" Trigger
      • "user_session_end" trigger
    • TAGs
      • Data Block
        • Data Block: Form View Mode
        • Data Block: Grid View Mode
        • Data Block: Mix View Mode
      • Control Block
      • Data List
      • Tree Element
      • Table TAG
      • Inputs
        • Text Item
        • Radio Item
        • Select Item
        • Checkbox Item
        • Button Item
        • Image Item
        • Textarea Item
        • Magic Buttons
    • Native SQL support
    • Lexical Elements
      • Identifiers
      • Keywords
      • Constants
        • The Null Statement
        • String Constant
      • Operators
      • Separators
      • White Space
      • Variables
        • Variable Type: int
        • Variable Type: char
        • Variable Type: bool
        • Local variables
        • Page variables
        • Session variables
        • Predefined Variables
          • :Session.authenticated
          • :Session.user
          • :Session.Id
          • :Session.user
          • :Row.Id
      • Functions
        • Function Declarations
        • Calling Functions
        • Function Parameters
        • Recursive Functions
      • Statements
        • The "if" Statement
        • The while Statement
        • The do Statement
        • Code Blocks
        • The break Statement
        • The return Statement
      • Expressions And Operators
        • Expressions
        • Assignment Operators
        • Arithmetic Operators
        • Comparison Operators
        • Logical Operators
        • Function Calls as Expressions
        • Operator Precedence
        • Order of Evaluation
      • Escape Character
    • CSS Themes
    • Scopes
    • Connection
      • Active Database Connection
      • Connection Types
        • Database Connections
        • REDIS Connection
  • Development
    • IDE
    • Debugging
  • SODIUM DEVELOPMENT
    • Sodium Development Home Page
    • Getting Started
      • Sodium Architecture
      • Development Environment
        • Source Code
        • Applications Required
        • Compiling C Projects
        • Compiling NodeJs Project
        • Troubleshooting
Powered by GitBook
On this page
  • Installation
  • How To Debug
  • Video Guide

Was this helpful?

  1. Development

Debugging

PreviousIDENextSodium Development Home Page

Last updated 5 years ago

Was this helpful?

Installation

Sodium comes with

  • A native 64bit Windows Debugger application, SodiumDebugger.exe (SD).

  • VS Code Debug Adaptor Protocol implementation, Sodium-debug-0.37.0.vsix.

If you are a Sodium developer and want to debug your Sodium application, follow the steps below:

  • Download and Install Visul Studio Code from

  • Run Visual Studio Code as administrator

  • Find and click "Run \ Install Additional Debugger" menu item

  • Click "..." button to open pull-down menu and click "Install from VSIX..." menu item

  • Find and click "sodium-debug-x.x.x.vsix" file and click "Install" button

  • After installation completes, you will see the screen below;

How To Debug

Now, Sodium applications can be debugged using Visual Stuido Code editor. Follow the steps below;

  • Run StartSodiumServer.bat file as administrator.

  • Wait for internet browser to open and then find the "Session Id: XXXXX" section at the bottom of the page and copy the session id.

  • Switch to Visual Stuido Code and then click "File \ Open Workspace" menu item

  • Find "Sodium-Site" folder in Sodium installation folder and choose "Sodium.code-workspace" file and click "Open" button.

  • Find and open "launch.json" file. Replace "Session Id" value with the correct value.

  • "sdPath" value must be the full path of the "SodiumDebugger.exe". (Put double \ character between folder names)

  • Find and open the "welcome.sqlx" file in VS Code

  • Press F5 button. SodiumDebugger will be activated and VS Code will show debug view.

  • Find cb_oracle.logon2oracle() function in the welcome.sqlx file and put a breakpoint on any line in that function.

  • Reload web page. A new line will be appeared at the bottom of the page as shown below;

Click "Login to Oracle" button (you do not need to have Oracle Database at this stage). Execution of the "welcome.sqlx" file will be stopped and VS Code will point the line where the execution stopped. Also, VS Code will show "Watch", "Variables" and "Call Stacks" panels.

  • Now, you can use following buttons to send debug commands to the debugger

    • F10 for Step-Over

    • F11 for Step-In

    • Shift-F11 for Step-Out

    • F5 for Continue

Video Guide

https://code.visualstudio.com/download
Sodium Debugging