Debugging is the process of finding and resolving defects or problems within a computer program that prevents the correct operation of computer software or a system.
If you are attending Global Summit 2018 please be sure to say hello to George James Software in the Partner Pavilion.
You are also invited to the informal lunchtime meeting we're hosting at Global Summit on Tuesday 2nd October from 1pm in Indian Paintbrush, a meeting room at the conference venue. We will be previewing the next versions of Deltanji, our integrated source code management solution, and Serenji, our editor and debugger.
The %Net.SSH.Session class lets you connect to servers using SSH. It's most commonly used with SFTP, especially in the FTP inbound and outbound adaptors.
In this article, I'm going to give a quick example of how to connect to an SSH server using the class, describe your options for authenticating, and how to debug when things go wrong.
I would like to share with you my experience regarding to debugging via Atelier.
I'm developing a REST API and would like to attach to a process when I call the API via a REST Client tool, for example Postman. The purpose is to inspect values from HEADER and BODY of the HTTP request during the debugging process.
Come on! How am I doing? I am going to demonstrate that by using a class from SAMPLES namespace.
1 - Open Atelier;
2 - Open your REST Service class;
3 - Go to the method related to the URI that you need to debug;
In this series of articles, I'd like to present and discuss several possible approaches toward software development with InterSystems technologies and GitLab. I will cover such topics as:
In this article I'll cover testing and debugging Caché web applications (mainly REST) with external tools. Second part covers Caché tools.
You wrote server-side code and want to test it from a client or already have a web application and it doesn't work. Here comes debugging. In this article I'll go from the easiest to use tools (browser) to the most comprehensive (packet analyzer), but first let's talk a little about most common errors and how they can be resolved.
The Command extension enables the execution of Multi-Line Commands from Terminal prompt.
Terminal Multi-Line Input with Edit, Insert, Delete, Print extension for IRIS and Caché IRIS and Caché have just single command lines in terminal available This Multi-Line Commands Editor also will execute the Multi-line Commands. In addition, it is independent of access to %SYS and can be installed in any namespace
Special thanks to @Jeffrey Drumm who inspired me to this and supported me as beta-tester.
This post is meant to provide a quick possible explanation for a very perplexing problem.
Scenario: You’ve just created your own administrative user in your 2014.1 (or later) instance of Caché. You gave it every possible security role (including %All), so it should in theory be able to do anything within the instance.
You’ve written a very advanced routine with a break command in it for debugging:
We at George James Software are pleased to announce that our acclaimed code debugger and editorSerenji is now available as a Visual Studio Code extension.
As well as supporting the latest InterSystems IRIS platform Serenji also works with earlier platforms, including versions lacking the server-side Atelier API support required by other VS Code extensions.
Serenji connects you directly to the code in your namespaces, resulting in an experience more familiar to existing Studio users. No need to export and import classes and routines.
We believe Serenji is the first extension to bring VS Code's powerful debugging features to ObjectScript developers.
In the WRC, we frequently see customers contact us because their Web Gateway is unable to serve web pages. This article will explain a frequent reason why these errors can occur, and explain some tools which can be used to debug the problem. This explanation is focused on the Web Gateway serving InterSystems IRIS instances, but the same explanation should apply to the CSP Gateway serving Caché instances as well.
We've just published an update to the Serenji extension for VS Code. Starting with this version (3.0.7) you can now debug the code that implements your REST services. Here's a taster:
InterSystems ObjectScript is perhaps the best language on the planet to deal with globals - and it is an interpretable language.
Yes, it has a compiler. But even the compiler can compile some lines in ObjectScript which will then fire as bugs during the runtime.
There are some technics on how to avoid that such as unit testing, coding guidelines and your coding experience, of course ;)
Here I want to present to you the yet another approach to how you can reduce the number of errors in your ObjectScript runtime and enforce coding guidelines - it's an ObjectScript Quality tool developed by Lite Solutions, InterSystems solution partner.
This is more for my memory that anything else but I thought I'd share it because it often comes up in comments, but is not in the InterSystems documentation.
There is a wonderful utility called ^REDEBUG that increases the level of logging going into mgr\cconsole.log.
The article makes an attempt to demonstrate that Atelier is not just repeating the functionality of Caché Studio on a new IDE platform (Eclipse) but goes far beyond. Due to my personal experience, and challenges in former projects I picked first XSLT Debugging. Is it an ordinary task? Not at all. Who is doing XSLT every day? Probably none of us. Than why XSLT Debugging? Simply because there are solutions in our product portfolio which are using XSLT inside and those solutions require customization. Customizing XSLT without some sort of toolkit is more than challenging. The examples of such solutions starts with HealthShare IHE message, CDA vs. SDA transformations, goes through ZEN Reports, and ends by HealthShare CDA document viewer. Is that enough reason to spend time reading the whole article through not just the teaser?
Not everyone knows that InterSystems Caché has a built-in tool for code profiling called Caché Monitor.
Its main purpose (obviously) is the collection of statistics for programs running in Caché. It can provide statistics by program, as well as detailed Line-by-Line statistics for each program.
Using Caché Monitor
Let’s take a look at a potential use case for Caché Monitor and its key features. So, in order to start the profiler, you need to go to the terminal and switch to the namespace that you want to monitor, then launch the %SYS.MONLBL system routine:
At the George James Software booth at Global Summit last year we took the wraps off the work we've been doing to make our popular editing and debugging tool Serenji available on the Visual Studio Code platform.
Rather than requiring you to pull code from your namespaces into local files, then push the changes back to the namespace to run it, you work directly in the namespace. In other words, the editing experience is like Studio rather than like Atelier.
As well as editing code you can also debug it directly from VSCode.
Every developer has made the mistake of accidentally leaving temporary debug code in place when they meant to remove it after debugging is complete. The great thing about writing in ObjectScript is that there is a way to make temporary code be truly temporary and automatically self-destruct! This can also be done in such a way that the code has no change of making it into your source control stream, which can be helpful as well.
Hi, if you develop production with HealthShare, you may have noticed there is a nice tracing feature available - HS.Util.Trace.Operations. This feature allows visually tracing debug information, in structured way. It complements good old logging macros like $$$LOGINFO, $$$TRACE and alike.
I use this feature a lot. However, it has limited functionality, it works nice with classes that extend XML Adapter, streams or data types, but it doesn't work well with arbitrary objects that do no extend from XML Adapter.
I recently learnt something new while working with WRC on an issue, and I wanted to share with everyone on the off chance it could help someone else.
Scenario:
Files are being inexplicably written to a folder on your server and, due to the number of files in the folder and general system throughput, it is not possible to work through the files to track down the source.
One of the most important features during application development is the ability to debug your code easily. Because of the asynchrnous nature, a standard Node.js application server works single-threaded by default. When you are developing applications using an IDE like Visual Studio Code, you can very easily debug your Node.js process:
Using our cool new debugging extension for Visual Studio Code I'm trying to debug a CreateProjection method of a class, but when I compile it the work apparently gets done in one of the worker jobs, so my breakpoint never triggers.
Is there a compiler flag or qualifier to force the compilation to be done in-process rather than getting handed off to a worker job?
In time for InterSystems Global Summit 2019 we at George James Software are pleased to offer a cloud-hosted evaluation environment where you can work with Serenji in Visual Studio Code, editing and debugging ObjectScript in a sandbox running InterSystems IRIS 2019.3 Community edition.
You can do it all from your web browser. Nothing will be installed on your workstation, nor will any settings have to be changed on it.
I have discussed extensively with Andrew Cheshire, the author of the Atelier parser (which I'll be able to hack on and reuse for CachéQuality -- yay!), and while we were at it, we also discussed code coverage.
We ended up talking about the ZBREAK command and its /TRACE option.
An exciting position has arisen for a Junior Application Support Analyst in an established support team. The role will suit candidates looking to enter, or are at the start of their career in, the software industry who want to provide good customer service, enjoy finding solutions for problems and are enthusiastic about software and technology. http://codas.com
An exciting position has arisen for an Application Support Analyst 3rd Line, in an established support team. The role will suit candidates looking to work in the software industry who want to provide good customer service, enjoy finding solutions for problems and are enthusiastic about software and technology. http://codas.com