Hi
Nope, the main servers are up and MIM seems to be running fine. I'll
investigate some more. But as far as I can see things are up.
/P
On Tue, Mar 22, 2011 at 01:17:38PM +0000, Sampsa Laine wrote:
Is update still down then? I'm still unable to connect.
Sampsa
On 22 Mar 2011, at 07:41, Pontus Pihlgren wrote:
On Tue, Mar 22, 2011 at 05:42:36AM +0000, Sampsa Laine wrote:
My bridge doesn't seem to be connecting at the moment - is update OK?
We have been fighting with a bad UPS tonight. Power is restored and the
UPS is no longer connected.
/Pontus
Is update still down then? I'm still unable to connect.
Sampsa
On 22 Mar 2011, at 07:41, Pontus Pihlgren wrote:
On Tue, Mar 22, 2011 at 05:42:36AM +0000, Sampsa Laine wrote:
My bridge doesn't seem to be connecting at the moment - is update OK?
We have been fighting with a bad UPS tonight. Power is restored and the
UPS is no longer connected.
/Pontus
On Tue, Mar 22, 2011 at 05:42:36AM +0000, Sampsa Laine wrote:
My bridge doesn't seem to be connecting at the moment - is update OK?
We have been fighting with a bad UPS tonight. Power is restored and the
UPS is no longer connected.
/Pontus
On 13/03/11 23:27, Marc Chametzky wrote:
Purely out of interest, how would I diassemble a DEC C routine on
VAX/VMS? Can I use DEBUG to do this?
Yes, you can use DEBUG for this.
If I remembered how to use the VMS debugger better, I'd give you more detailed information, but what you can do is set a breakpoint at the strcpy(), and then STEP/INTO to go into DECC$STRCPY. Since there's no source for it, DEBUG will show you the VAX instructions.
Let me see what I can do. Warning: I'm very, very rusty! :-)
Okay, I compiled and linked the program /DEBUG.
Then, I ran the program and stepped to the strcpy() line.
I used "SET MODE SCREEN" to enable full-screen debugging and then "DISP INST AT RH1" to put the VAX instructions on the screen next to the source.
Using "SET STEP INST" will step by instructions instead of source lines. You can then use "STEP/INTO" to step into the RTL and see the instructions as you step through it.
Without symbols in DECC$SHR, you're probably not going to get much out of it, but at least you can see what's there.
--Marc
Thanks for all the suggestions! I half guessed using DEBUG in this case might be the easiest solution for me, I was more rusty in not remembering any of the commands.
Regards, Mark.
On 05.03.2011 5:12, Sampsa Laine wrote:
Again available at http://rhesus.sampsa.com/hecnetdir.html
Let me know if you want nodes added to the directory.
Sampsa
Hi!
Please add CTAKAH.
On Mar 13, 2011, at 8:21 PM, Peter Coghlan wrote:
Purely out of interest, how would I diassemble a DEC C routine on
VAX/VMS? Can I use DEBUG to do this?
Yes, you can use DEBUG for this.
Better still, use the public domain DISM32 by Andrew Pavlin. I can't remember
where I got it but even if it is not on the freeware cds, it should not be too
difficult to locate it. If not, I can provide a copy. If you don't get a
compiled version, you need a FORTRAN compiler to build it.
Something else that might work: the GNU tools may either be able to process VMS format files, or be talked into converting it to something they can handle. If so, you could use objdump or gdb to look at the bits in question.
paul
Purely out of interest, how would I diassemble a DEC C routine on
VAX/VMS? Can I use DEBUG to do this?
Yes, you can use DEBUG for this.
Better still, use the public domain DISM32 by Andrew Pavlin. I can't remember
where I got it but even if it is not on the freeware cds, it should not be too
difficult to locate it. If not, I can provide a copy. If you don't get a
compiled version, you need a FORTRAN compiler to build it.
DISM32 takes a VAX executable/sharable/system image and generates assembler
source which can be run back through the MACRO assembler. Some tweaking may be
required before it will assemble properly. More tweaking may be required to
correctly differentiate between code and data in all cases, although it does
a pretty good job in general. It is especially good with device drivers and
knows how to regenerate many/most of the macros used to assemble them. It is
also very good with ordinary user mode code. It can get confused by code
sections that never get called and by some calculated addresses but it is
possible to give it hints about these and run it iteratively to achieve an
acceptable result.
You can use DISM32 on SYS$LIBRARY:DECC$SHR.EXE or an executable image linked
with SYS$LIBRARY:DECC$CRTL.OLB to disassemble bits of the C runtime library.
Unfortunately, some of the constructs uses by C compilers can look pretty
obscure when viewed as assembly language. If bits of the runtime library
are originally written in assembly, they will likely be easier to figure out.
Regards,
Peter Coghlan.
Purely out of interest, how would I diassemble a DEC C routine on
VAX/VMS? Can I use DEBUG to do this?
Yes, you can use DEBUG for this.
If I remembered how to use the VMS debugger better, I'd give you more detailed information, but what you can do is set a breakpoint at the strcpy(), and then STEP/INTO to go into DECC$STRCPY. Since there's no source for it, DEBUG will show you the VAX instructions.
Let me see what I can do. Warning: I'm very, very rusty! :-)
Okay, I compiled and linked the program /DEBUG.
Then, I ran the program and stepped to the strcpy() line.
I used "SET MODE SCREEN" to enable full-screen debugging and then "DISP INST AT RH1" to put the VAX instructions on the screen next to the source.
Using "SET STEP INST" will step by instructions instead of source lines. You can then use "STEP/INTO" to step into the RTL and see the instructions as you step through it.
Without symbols in DECC$SHR, you're probably not going to get much out of it, but at least you can see what's there.
--Marc
Once you have the object extracted from its library you can execute:
$ ANALYZE/OBJECT <filespec>
Section #2 "LANGUAGE PROCESSOR HEADER" should give you the source
language(s) used.
-Steve
-----Original Message-----
From: owner-hecnet at Update.UU.SE [mailto:owner-hecnet at Update.UU.SE] On
Behalf Of Johnny Billquist
Sent: Sunday, March 13, 2011 19:02
To: hecnet at Update.UU.SE
Subject: Re: [HECnet] Disassembling DEC C routines
Mark, I don't understand the question.
You have already shown the resulting disassembled code for that C.
Are you asking about how to get the disassembled code for the C library
routine?
Ah! Read through the thing again, and it seems you are indeed looking
for the disassembly of the library routines.
Well, I guess you want a disassembler for that. Check if there aren't
any in the DECUS library perhaps?
By the way. There is no guarantee that DECC$STRCPY is written in C. But
a disassembly will only give you VAX assembler anyway.
Johnny
On 2011-03-13 21:58, Mark Wickens wrote:
Guys,
Purely out of interest, how would I diassemble a DEC C routine on
VAX/VMS? Can I use DEBUG to do this?
For example, I have the following code:
#include <stdio.h>
#include <string.h>
void main(int argc, char **argv) {
char to[32];
strcpy(to, "Hello World!\n");
printf(to);
}
If I use
BUBBLE$ cc/list/machine_code strcpy.c
I get the following:
1 1267 strcpy(to, "Hello World!\n");
D6 AF 9F 0027 pushab $CODE
D8 AD 9F 002A pushab -40(fp)
00000000* EF 02 FB 002D calls #2,DECC$STRCPY
Note that the call to DECC$STRCPY is listed, but not the code in the
routine.
I'm interested in how some of the C library routines are implemented
at a machine code level from an academic point of view.
Regards, Mark.
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: bqt at softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol